gpt4 book ai didi

python - Django 的 FormWizard 中的空 ModelFormset

转载 作者:太空狗 更新时间:2023-10-30 02:49:25 25 4
gpt4 key购买 nike

我正在使用 Django 的 FormWizard。它工作正常,但我无法正确显示任何空模型表单集。

我有一个名为 Domain 的模型。我正在创建一个像这样的 ModelFormset:

DomainFormset = modelformset_factory(Domain)

我像这样将其传递给 FormWizard:

BuyNowWizardView.as_view([DomainFormset])

我没有收到任何错误,但是当向导呈现页面时,我得到了所有 Domain 对象的列表。我想要一个空表格。我该怎么做?我读过我可以给 ModelFormset 一个 queryset 参数,比如 Domain.objects.none() 但它似乎不起作用,因为我收到错误。

关于我哪里出错的任何想法?

谢谢

最佳答案

Django 文档提供了两种方式 change the queryset for a formset .

第一种方法是在实例化表单集时将查询集作为参数传递。使用 formwizard,您可以通过传递 instance_dict 来完成此操作

# set the queryset for step '0' of the formset
instance_dict = {'0': Domain.objects.none()}

# in your url patterns
url(r'^$', BuyNowWizardView.as_view([UserFormSet], instance_dict=instance_dict)),

第二种方法是子类化 BaseModelFormSet 并覆盖 __init__ 方法以使用空查询集。

from django.forms.models import BaseModelFormSet

class BaseDomainFormSet(BaseModelFormSet):
def __init__(self, *args, **kwargs):
super(BaseDomainFormSet, self).__init__(*args, **kwargs)
self.queryset = Domain.objects.none()

DomainFormSet = modelformset_factory(Domain, formset=BaseDomainFormSet)

然后像以前一样将 DomainFormSet 传递给表单向导。

关于python - Django 的 FormWizard 中的空 ModelFormset,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8316145/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com