我在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中使用它来生成ModelFormSet:
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)
然后我将我的urls.py传递给NamedUrlSessionFormWizard ......
我面临的问题如下:
我尝试使用modelformset来渲染空表单。关于它的一点是我不知道用户想要多少个模型实例,所以我想到了使用模型表单集并设置了一般表单所需的最小值。
当我将最小值设置为1并且将查询集设置为无时,它似乎没有任何显示,因此它会抛出有关最小值的错误。但如果使用默认查询集,它会向我显示已存在的实例,就好像我想编辑它们一样。
我发现this related question但是没有太多帮助我。
所以我的一个问题可能是:
有没有办法使用modelformset来创建模型的新实例?
另一个可能是:
是不是我没有关注正确的错误,这可以在代码中的其他地方解决?