我正在使用 Django 的 FormWizard。它工作正常,但我无法正确显示任何空模型表单集。
我有一个模型叫Domain
。我正在创建一个像这样的 ModelFormset:
DomainFormset = modelformset_factory(Domain)
我将其传递给 FormWizard,如下所示:
BuyNowWizardView.as_view([DomainFormset])
我没有收到任何错误,但是当向导呈现页面时,我得到了所有错误的列表Domain
对象。我想要一份空表格。我怎样才能做到这一点?我读到我可以给予queryset
ModelFormset 的参数,例如Domain.objects.none()
但它似乎不起作用,因为我收到错误。
关于我哪里出错了有什么想法吗?
Thanks
Django 文档提供了两种方法更改表单集的查询集.
第一种方法是在实例化表单集时将查询集作为参数传递。使用表单向导,您可以通过传递来完成此操作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
像以前一样到表单向导。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)