我有一个用于创建ProductFormSet的Product模型。如何将label_suffix指定为默认冒号以外的其他内容?我希望它是空白的。我看到的解决方案似乎只在申请表格时适用 - here。
ProductFormSet = modelformset_factory(Product, exclude=('abc',))
products = Product.objects.order_by('product_name')
pformset = ProductFormSet(queryset=products)
答案 0 :(得分:1)
在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',))
答案 1 :(得分:0)
另一种方法是创建自定义标签:
@register.filter("set_label_suffix")
def set_label_suffix(field, suffix=''):
field.field.label_suffix = suffix
return field
然后在模板中使用(在此示例中也使用widget_tweaks
)
{% for field in channel_change_form %}
<div class="form-group">
{{ field.errors }}
{{ field|add_label_class:"col-form-label"}}
{{ field|set_label_suffix|add_class:"form-control" }}
</div>
...