我有一个用于创建 ProductFormSet 的 Product 模型。如何将 label_suffix 指定为默认冒号以外的其他内容?我希望它是空白的。我见过的解决方案似乎只适用于启动表单 - here

ProductFormSet = modelformset_factory(Product, exclude=('abc',))
products = Product.objects.order_by('product_name')
pformset = ProductFormSet(queryset=products)

最佳答案

在 Django 1.9+ 中,您可以使用 form_kwargs 选项。

ProductFormSet = modelformset_factory(Product, exclude=('abc',))
products = Product.objects.order_by('product_name')
pformset = ProductFormSet(queryset=products, form_kwargs={'label_suffix': ''})

在早期的 Django 版本中,您可以定义一个 ProductForm 类,将 label_suffix 方法中的 __init__ 设置为空白,然后将该表单类传递给 modelformset_factory
class ProductForm(forms.ModelForm):
    ...
    def __init__(self, *args, **kwargs):
        super(ProductForm, self).__init__(*args, **kwargs)
        self.label_suffix = ''

ProductFormSet = modelformset_factory(Product, form=ProductForm, exclude=('abc',))

10-07 23:17