我的觀點:Django的ManagementForm數據丟失或已被篡改
class HospitalDoctorAddView(CreateView):
template_name = "hospital_doctor_add.html"
form_class = HospitalDoctorInfoForm
model = HospitalDoctor
success_url = "/hospital-profile/"
def get_context_data(self, **kwargs):
context = super(HospitalDoctorAddView, self).get_context_data(**kwargs)
context['formset'] = TimingFormSet
return context
def post(self, request, *args, **kwargs):
form = self.form_class(request.POST)
formset = TimingFormSet(request.POST, prefix='timing')
if form.is_valid() and formset.is_valid():
self.form_save(form)
self.formset_save(formset)
return render(request, self.template_name, {
'form': HospitalDoctorInfoForm,
'formset': formset})
def form_save(self, form):
info = HospitalDoctor()
info.hospital = self.request.user
info.full_name = form.cleaned_data['full_name']
info.expertization = form.cleaned_data['expertization']
info.nmc_no = form.cleaned_data['nmc_no']
info.save()
def formset_save(self, form):
frm = Timing()
frm.day = form.cleaned_data['day']
frm.mng_start = form.cleaned_data['mng_start']
frm.mng_end = form.cleaned_data['mng_end']
frm.eve_start = form.cleaned_data['eve_start']
frm.eve_end = form.cleaned_data['eve_end']
frm.save()
,在我的模板:
<form method="post" action="">{% csrf_token %}
<p>{{form}}</p>
<p>{{formset.management_form}}</p>
<table>
{% for form in formset %}
{{form}}
{% endfor %}
</table>
<input type="submit" value="Create" />
</form>
我要發佈一個正規形式和表單集。
這裏我得到ValidationError:u'ManagementForm數據丟失或被篡改'。我不知道什麼是錯的。需要幫忙。
你可以發佈一些更多的視圖類嗎?如果您的視圖只是一個函數,那麼它不會有自己訪問的屬性/方法 – rfj001 2014-11-01 05:54:57
我正在使用createview,並且如果form.is_valid()和formset.is_valid()顯示錯誤 – gamer 2014-11-01 06:02:26
我已添加我的視圖 – gamer 2014-11-01 06:09:33