Django 将ModelFormset与表单向导一起使用

Django 将ModelFormset与表单向导一起使用,django,django-forms,django-queryset,django-formwizard,Django,Django Forms,Django Queryset,Django Formwizard,我的models.py中有此部分: class AdrecaProjecteAutoocupat(Adreca): [...] designacio = models.CharField( max_length=128, verbose_name=u"designació", help_text=u"nom per identificar aquesta adreça, \ especialment si n'hi ha més d'una \

我的models.py中有此部分:

class AdrecaProjecteAutoocupat(Adreca):

[...]

designacio = models.CharField(
    max_length=128, verbose_name=u"designació",
    help_text=u"nom per identificar aquesta adreça, \
        especialment si n'hi ha més d'una \
        al projecte; p.ex. es podrien dir \"restaurant\" i \"botiga\".")

traspas = models.CharField(
    max_length=10, choices=TIPUS_TRASPAS, default=TIPUS_TRASPAS_CAP)
traspas_comentaris_avaluacio = models.TextField(
    max_length=1024, blank=True, null=True,
    help_text=u"Comentaris que es fan als membres de referència en el \
        moment de demanar-los la cessió")
traspas_inici = models.DateField(blank=True, null=True)
traspas_final = models.DateField(blank=True, null=True)
traspas_comentaris_alta = models.TextField(
    max_length=1024, blank=True, null=True,
    help_text=u"Observacions i particularitats recollides durant l'alta")

traspas_lloguer_import_mensual = models.DecimalField(
    max_digits=8, decimal_places=2,
    blank=True, null=True,
    verbose_name=u"import mensual del lloguer")

activitats = models.ManyToManyField(
    Activitat,
    blank=True, null=True,
    limit_choices_to={'firaire': False})

class Meta:
    verbose_name = u"adreça de projecte autoocupat"
    verbose_name_plural = u"adreces de projectes autoocupats"
我在forms.py中使用它来生成模型表单集:

class FormulariAdrecaProjecteAutoocupat(forms.ModelForm):
"""
Step 4
"""
projecte = None

class Meta:
    model = AdrecaProjecteAutoocupat
    fields = '__all__'
    widgets = {
        'traspas': forms.RadioSelect(),
        'activitats': forms.CheckboxSelectMultiple()
    }


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


AdrecesFormSet = modelformset_factory(AdrecaProjecteAutoocupat,
                                  formset=EmptyAdrecesFormSet,
                                  form=FormulariAdrecaProjecteAutoocupat,
                                  extra=0,
                                  min_num=1,
                                  can_delete=True)
然后我在我的URL.py中将其传递给NamedUrlSessionFormWizard

我面临的问题如下:

我尝试使用modelformset呈现空表单。关键是,我不知道用户需要多少个模型实例,所以我考虑使用模型表单集,并至少设置一个,这是常规表单所需的

当我将最小值设置为1,将queryset设置为none时,它似乎没有什么可显示的,因此它抛出了一个关于最小值的错误。但如果使用默认queryset,它会显示已经存在的实例,就好像我想要编辑它们一样

我找到了,但帮不了我太多

因此,我的一个问题可能是: 有没有一种方法可以使用modelformset来创建模型的新实例

另一个可能是:
是因为我没有关注正确的错误,而这可以在代码的其他地方解决吗?

您是否厌倦了设置额外的值并删除最小值?是的,我尝试过,但仍然得到一个值为0的键错误。我解释为它正在寻找一个不存在的实例,我只是删除了旧实例。。。再试一次,但出现了相同的错误。如果我设置extra=0,并且没有最小值,那么我得到了一个带有任意表单/带有任意表单/没有表单的渲染模板/*