【发布时间】:2016-10-14 06:48:05
【问题描述】:
所以,我使用 Django 的 Model Formset 来为不同的数据生成一组表单。它工作得很好,但我想添加一个功能,当用户显示表单集并更新 10 个项目中的 2 个时,我可以只跟踪更新的 2 个,并输出一条消息,例如“您已更新 2 个项目“那种东西。
Django Model Formsets 有内置的 API 吗?我似乎在 Django Docs 上找不到它。
我尝试了各种方法,但在使用下面 Peter 提供的代码时不断得到这种情况:
'Attendance' object has no attribute 'has_changed.'
如果我将 form.has_changed 切换到 formset.has_changed(),我会得到 p>
'list' object has no attribute 'has_changed'
我的查看和发布方法
class AttendanceView(TemplateView):
template_name = 'example.html'
def changed_forms(self, formset):
return sum(1 for form in formset if form.has_changed())
def post(self, request, *args, **kwargs):
formset = AttendanceFormSet(request.POST)
if formset.is_valid():
formset = formset.save()
forms_changed = self.changed_forms(formset)
context = self.get_context_data(**kwargs)
context['total_changed_forms'] = forms_changed
return self.render_to_response(context)
else:
return HttpResponse("POST failed")
所以我想通了,只是改变:
formset = formset.save()
到
formset.save()
【问题讨论】:
标签: python django django-forms django-views modelform