Django modelformset_工厂:显示的表单比实际显示的表单多出一个

2024-09-27 00:15:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下型号:

class Portfolio(models.Model):
     id = models.AutoField(primary_key=True)
     member = models.ForeignKey(Member, on_delete=models.CASCADE)

为此,我制作了模型:

class PortfolioForm(forms.ModelForm):

     class Meta:
          model = Portfolio
          exclude = ['id']

我需要在一个模板中有很多这样的内容,所以我在我的视图中按以下方式创建它们

def portfolio_form(request, pk):
   ...
   PortfolioFormSet = modelformset_factory(Portfolio, form=PortfolioForm)
   formset =  PortfolioFormSet(queryset=Portfolio.objects.filter(pk__in=list_of_ids))

最后,在html中,我有以下内容:

一切都很好,只是HTML显示的内容比实际显示的多了一个。我已经在贝壳里验证过了。有3个,但显示了4个

我正在桌子上展示它们。我肯定这不是模板


Tags: keyform模板id内容modelmodelsclass
1条回答
网友
1楼 · 发布于 2024-09-27 00:15:47

默认情况下,modelformset_factory使用extra=1。如果不需要任何额外的表单,请将其设置为零

PortfolioFormSet = modelformset_factory(Portfolio, form=PortfolioForm, extra=0)

相关问题 更多 >

    热门问题