Django — как получить доступ к полям в наборе форм?

#django-forms #formset

#джанго-формы #набор форм

Вопрос:

Я использую набор форм модели для обновления поля электронной почты для модели. Набор форм отображается должным образом, и новые данные формы email сохраняются. Тем не менее, я хочу добавить некоторую функциональность в свое представление , где мне нужно использовать значение email , но я не знаю, как это сделать в моем представлении.

Модель

 class Student(models.Model):  fullname = models.CharField(max_length=60)  student_number = models.IntegerField()  email = models.EmailField(max_length=50)  

Вид

 def editstudentemail(request, classroom_pk):  classblock = get_object_or_404(Classroom, pk=classroom_pk)  students = Student.objects.filter(classroom=classblock)  EditEmailFormSet = modelformset_factory(Student, fields=('email',), extra=0)  if request.method == 'POST':  formset = EditEmailFormSet(request.POST, queryset=students)  if formset.is_valid():  for form in formset:  print(form)  print(form.email) # gives an error  # do some stuff with the email  instances = formset.save()   return redirect('gradebook:classroomdetail', classroom_id=classroom_pk)   formset = EditEmailFormSet(queryset=students)  context = {'classblock': classblock}  context['students'] = students  context['formset'] = formset   return render(request, 'gradebook/editstudentemail.html', context)  

шаблон

 {% if students %}  lt;form method="post"gt;{% csrf_token %}  {{ formset.management_form }}  {% for ss in students %}  lt;div class="row"gt;  lt;div class="col-4"gt;  lt;bgt;{{ ss.fullname }}lt;/bgt;  lt;/divgt;  lt;div class="col-4"gt;  {% for form in formset %}  {% if forloop.parentloop.counter == forloop.counter %}  {{ form|crispy }}lt;br/gt;  {% endif %}  {% endfor %}  lt;/divgt;  lt;hr/gt;  lt;/divgt;  {% endfor %}  lt;input type="submit" value="Save" class="btn btn-outline-primary mt-2" /gt;  lt;/formgt; {% endif %}  

печать(форма) дает мне такие записи, как следующие:

 lt;input type="email" name="form-0-email" value="34005@learn.vsb.bc.ca" maxlength="50" id="id_form-0-email"gt; lt;input type="hidden" name="form-0-id" value="df1b3f06-fbe8-4519-a5be-e11b76ebb1ac" id="id_form-0-id"gt;  

Однако print(form.email) возвращает эту ошибку: 'StudentForm' object has no attribute 'email'