在Django中保存表单集返回无模型

时间:2020-08-20 10:28:37

标签: django django-forms

我的表单集有问题。当我提交表单集时,模型不会保存并显示为“无”。我不明白为什么,有人可以照亮我吗?

模板和urls.py都没有问题。我在我的日志控制台中得到这个: See image

这是我的代码:

// views.py
def classroom_call_the_roll(request, class_id):
  classroom = Classroom.objects.get(pk=class_id)
  students = classroom.students.all()
  queryset = Attendance.objects.none()

  AttendanceFormset = modelformset_factory(
      model=Attendance,
      form=AttendanceForm,
      can_delete=False,
      extra=len(students)
  )

  if request.method == 'POST':
      formset = AttendanceFormset(
          request.POST,
          queryset=queryset,
          initial=[{'student': student} for student in students]
      )
      for form in formset.forms:
          instance = form.save(commit=False)
          print(instance)
  else:
      formset = AttendanceFormset(
          queryset=queryset,
          initial=[{'student': student} for student in students]
      )

  return render(
      request,
      'highschool/attendance/classroom_attendance_create.html',
      {
          'formset': formset
      }
  )

2 个答案:

答案 0 :(得分:0)

我看到您在 form.save 通话中设置了commit=False。如果这样做,则必须通过调用

自己保存实例
instance.save()

答案 1 :(得分:0)

您应该手动保存模型。为此,您应该添加instance.save()