#python #django #formset
#python #django #набор форм
Вопрос:
Я пытаюсь установить значение для каждой формы в наборе форм в одно значение. Я не уверен, как это сделать … views.py функция ниже:
Нравится: formset.idcst_cnt = id
views.py
def customer_contacts(request, id):
ContactFormSet = modelformset_factory(AppContactCnt, can_delete=True, fields=(
'name_cnt', 'phone_cnt', 'email_cnt', 'note_cnt', 'receives_emails_cnt'), max_num=3, extra=3)
formset = ContactFormSet(queryset=AppContactCnt.objects.filter(idcst_cnt=id), prefix='contact')
if request.method == 'GET':
context = {'formset': formset}
return render(request, 'customer_contacts.html', context=context)
if request.method == 'POST':
formset = ContactFormSet(request.POST, prefix='contact')
if formset.is_valid():
print("we're updating contacts for " str(id))
# formset.save()
return HttpResponseRedirect(request.META.get('HTTP_REFERER'))
Комментарии:
1. в
if request.method == 'POST'
вы можете сделатьfor form in formset
2. @AndreyBorzenko, большое спасибо! Не могу поверить, что я об этом не подумал, да!!
3. Это происходит :), тогда я только что добавил ответ.
Ответ №1:
В разделе if request.method == 'POST'
вы можете сделать for form in formset
Комментарии:
1. Итак, я знаю, что это не связано, и я могу задать новый вопрос, но сейчас я сталкиваюсь с этой ошибкой:
Cannot assign "1930": "AppContactCnt.idcst_cnt" must be a "AppCustomerCst" instance.
есть мысли?2. Похоже, что вместо целого идентификатора
idcst_cnt=id
вам нужно присвоить его экземпляру AppCustomerCst с этим идентификатором, что-то вроде этого:idcst_cnt=AppCustomerCst.objects.get(id=id)