我已经基于modelformset_factory创建了一个Formset,并在我的视图中创建了一个现有的表单,并传递给它一组要编辑的对象的查询集。这些显示在视图上是正确的,但是每当我尝试确认时,它都不会保存。打印语句(print(formset.is_valid(),我看到这就是停止formset保存的原因。
如何正确地将现有的查询集传递给要编辑的窗体集?
Forms.py
class RSVPForm(forms.ModelForm):
class Meta:
model = Invite
fields = ['guest_name', 'plus_one', 'dietry_requirements', 'rsvp_attendance']Views.py
def view_rsvp_create(request, event_id, guest_id):
event = get_object_or_404(Event, id=event_id)
guest = get_object_or_404(Guest, id=guest_id)
invites = Invite.objects.filter(event=event, guest=guest)
RSVPFormset = modelformset_factory(Invite, form=RSVPForm, extra=0)
formset = RSVPFormset(queryset=invites)
if request.method == 'POST':
if formset.is_valid():
print('okey')
formset.save()
return redirect('view_rsvp_overview', name = guest.wedding.subdomain, code = guest.code)
data = {'formset': formset, 'guest': guest, 'wedding': event.wedding, 'invites':invites}
template='experience/rsvp-create.html'
return render(request, template, data)update.html
...
<form method="post">
{% csrf_token %} {{ formset | crispy }}
<button type="submit" class="btn">{% trans "Confirm RSVP" %}</button>
</form>
...发布于 2022-01-31 16:11:15
我能够通过更改if request.method == 'POST':的if语句来解决我的问题
以下各点:
formset = RSVPFormset(request.POST or None, queryset=invites)https://stackoverflow.com/questions/70928433
复制相似问题