首页 > 解决方案 > 如何编辑由modelformset_factory生成的FormSet生成的表单?

问题描述

所以我有我在我的模板中使用的这个表单集:

def manage_authors(request):
    AuthorFormSet = modelformset_factory(Produkt, fields=('nazwa','ilosc','minimum',),extra=0)
    if request.method == 'POST':
        formset = AuthorFormSet(request.POST or None, request.FILES or None)
        if formset.is_valid():
            formset.save()

    else:
        formset = AuthorFormSet()
    return render(request, 'manage_authors.html', {'formset': formset})    

我希望我可以编辑在 html 页面中生成的字段的属性,更改最大长度、大小、标签。现在我只是获取默认字段,我知道如何为预定义的表单执行此操作,但是这种情况呢?

标签: django

解决方案


如此所述,您还可以将自定义ModelForm(例如ProduktForm)传递给modelform-factory

AuthorFormSet = modelformset_factory(Produkt, form=ProduktForm, fields=('nazwa','ilosc','minimum',),extra=0)

此外,如果您只需要自定义可以使用 的Meta类进行自定义的内容,则ModelForm可以直接在您的 formset_factory 中执行此操作:

AuthorFormSet = modelformset_factory(Produkt, fields=('nazwa','ilosc','minimum',), extra=0,
    widgets={'nazwa': Textarea(max_length=20)},
    labels={'nazwa': 'custom label'})

推荐阅读