【发布时间】:2015-02-01 20:29:04
【问题描述】:
我有一个医生详细信息视图,其中我已将表单作为上下文传递:
class HospitalDoctorDetailView(DetailView):
context = {}
model = HospitalDoctor
template_name = "hospital_doctor_detail.html"
context_object_name = 'doctor'
def get_context_data(self, **kwargs):
context = super(HospitalDoctorDetailView, self).get_context_data(**kwargs)
context['appointment_form'] = AppointmentForm1
return context
我在名为hospital_doctor_detail.html的模板中使用了这个表单:
<form action="/appointment/{{doctor.id}}/{{doctor.hospital.id}}/" method="post">{% csrf_token %}
First Name:<br/>
{{ form.first_name.errors }}
{{ appointment_form.first_name }}<br/>
Middle Nmae:<br/>
{{ form.middle_name.errors }}
{{ appointment_form.middle_name }}<br/>
Last Name:<br/>
{{ form.last_name.errors }}
{{appointment_form.last_name}}<br/>
Age:<br/>
{{ form.age.errors }}
{{ appointment_form.age }}<br/>
Date:<br/>
{{ form.appointment_date.errors }}
{{ appointment_form.appointment_date }}<br/>
<br/>
<input type="submit" value="Take Appointment" style="background-color:#EFEFEF; border:1px solid #000;" />
</form>
我的表单 AppointmentForm1 是一个模型表单。要提交表单,我已经写了一个视图:
def TakeAppointmentView(request, pk, hpk):
doctor = HospitalDoctor.objects.get(pk=pk)
hospital = Hospital.objects.get(pk=hpk)
if request.method == "POST":
form = AppointmentForm1(request.POST)
if form.is_valid():
app = DoctorAppointment()
app.user = request.user
app.doctor = doctor
app.hospital = hospital
app.first_name = form.cleaned_data['first_name']
app.middle_name = form.cleaned_data['middle_name']
app.last_name = form.cleaned_data['last_name']
app.age = form.cleaned_data['age']
app.appointment_date = form.cleaned_data['appointment_date']
app.save()
messages.success(request, "Thank you for taking appointment")
return redirect("doctor_detail", pk)
#return redirect("/home/")
else:
return render_to_response("hospital_doctor_detail.html", {"appointment_form":form}, context_instance=RequestContext(request))
else:
form = AppointmentForm1()
return render_to_response("hospital_doctor_detail.html", {"appointment_form":form}, context_instance=RequestContext(request))
如果表格有效,预约成功,但如果表格无效,我想将其重定向到同一个医生详细信息视图。
这里我收到一个错误,如果表单无效,它会重定向到带有错误消息的医生详细信息视图,但表单不显示? 这里有什么问题??
【问题讨论】:
标签: python django forms templates view