首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django Formset投递但formset永远无效

Django Formset投递但formset永远无效
EN

Stack Overflow用户
提问于 2022-01-31 15:24:51
回答 1查看 23关注 0票数 0

我已经基于modelformset_factory创建了一个Formset,并在我的视图中创建了一个现有的表单,并传递给它一组要编辑的对象的查询集。这些显示在视图上是正确的,但是每当我尝试确认时,它都不会保存。打印语句(print(formset.is_valid(),我看到这就是停止formset保存的原因。

如何正确地将现有的查询集传递给要编辑的窗体集?

Forms.py

代码语言:javascript
复制
class RSVPForm(forms.ModelForm):

    class Meta:
        model = Invite
        fields = ['guest_name', 'plus_one', 'dietry_requirements', 'rsvp_attendance']

Views.py

代码语言:javascript
复制
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

代码语言:javascript
复制
...
<form method="post">
{% csrf_token %} {{ formset | crispy }}
<button type="submit" class="btn">{% trans "Confirm RSVP" %}</button>
</form>
...
EN

回答 1

Stack Overflow用户

发布于 2022-01-31 16:11:15

我能够通过更改if request.method == 'POST':的if语句来解决我的问题

以下各点:

代码语言:javascript
复制
formset = RSVPFormset(request.POST or None, queryset=invites)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70928433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档