Yani, bir toplam Django Model Formset Newb sorusu. Benim formu kaydedip bu hatayı almaya devam çalışıyorum:Django Model Formset'imi kaydetmeye çalışıyorum, ManagementForm hatası alıyorum?
İşteclass AttendanceTemplate(TemplateView):
template_name = 'attendance/index.html'
def get_context_data(self, **kwargs):
context = super(AttendanceTemplate, self).get_context_data(**kwargs)
instruction = Instruction(self.request.user.username)
sections_list = self.request.GET.getlist('sections_list')
term = self.request.GET.get('term', instruction.term)
enrollments = Enrollment.objects.using('wisp').prefetch_related('profile').filter(section_id__in=['111111'], term=term)
attendanceQuery = Enrollment.objects.using('wisp').prefetch_related('student').filter(section_id__in=['111111'], term=term)
for enrollment in attendanceQuery:
attendance, created = Attendance.objects.update_or_create(
section_id=enrollment.section_id,
term=enrollment.term,
first_name=enrollment.student.first_name,
last_name=enrollment.student.last_name,
email_address=enrollment.student.email_address,
)
something = Attendance.objects.filter(section_id__in=['111111'], term=term)
formset = AttendanceFormSet(queryset=something)
combined = zip(enrollments, formset)
context['combined'] = combined
return context
Ben formunu kurtarmaya çalışıyorum nasıl: Burada
['ManagementForm data is missing or has been tampered with']
Benim TemplateView için ne var
<form method="POST" action="">
{% csrf_token %}
{% for enrollment, form in combined %}
<div class="wrapper-formset">
<div>
{{ form.first_name.value }}
{{ form.last_name.value }}
{{ form.email_address.value }}
</div>
<div class="clear-all"></div>
</div>
{% endfor %}
<button type="submit" class="save btn btn-default">Save</button>
</form>
: Burada
def post(self, request):
formset = AttendanceFormSet(request.POST)
if formset.is_valid():
for thing in formset:
formset = thing.save()
return render_to_response("template/index.html",{'formset': formset}, RequestContext(request))
else:
return HttpResponse(error.msg)
Şablonumdaki ne var
Formumu yanlış kaydediyor muyum? Belki benim döngüsüm yanlış? Ayrıca, her alanı tek tek basmayı tercih ederim, bu yüzden "myform.management_Form" kullanımı benim için çalışmayabilir. (ör., myform.management_form.field_name)
Ancak bir zip işlevi kullanıyorum: kombine = zip (kayıtlar, form kümesi) bağlam ['kombine'] = kombine ... ve buna benzer {{combined.management_form}} ekleyerek Çalışıyor –
"zip()' yi görebiliyorum, ama bu hiçbir fark yaratmıyor. Yönetim formunu ayrıca eklemelisiniz. – Alasdair
ah tamam, bu yüzden formları ayrı ayrı bağlam yoluyla geçmem gerekiyor mu? –