Python 向ModelForm上的queryset字段添加类属性
因此,我试图在我的模型表单上向该字段添加一个class属性,以允许引导样式:Python 向ModelForm上的queryset字段添加类属性,python,django,django-forms,Python,Django,Django Forms,因此,我试图在我的模型表单上向该字段添加一个class属性,以允许引导样式: category = forms.ModelChoiceField(queryset=Category.objects.all()) 我试过这个: category = forms.ModelChoiceField(queryset=Category.objects.all(), widget=forms.ModelChoiceField(attrs={'class':'form-control'})) 得到了这个
category = forms.ModelChoiceField(queryset=Category.objects.all())
我试过这个:
category = forms.ModelChoiceField(queryset=Category.objects.all(), widget=forms.ModelChoiceField(attrs={'class':'form-control'}))
得到了这个错误:
TypeError: __init__() missing 1 required positional argument: 'queryset'
我的完整模型:
class NewListingForm(forms.ModelForm):
class Meta:
model = Listing
fields = ["title", "description", "start_price", "image", "category"]
title = forms.CharField(widget=forms.TextInput(attrs={'autocomplete':'off', 'class':'form-control'}))
description = forms.CharField(widget=forms.TextInput(attrs={'autocomplete':'off', 'class':'form-control'}))
start_price = forms.DecimalField(label='Starting Bid Price (£)', widget=forms.NumberInput(attrs={'class':'form-control'}))
image = forms.URLField(widget=forms.URLInput(attrs={'autocomplete':'off', 'class':'form-control'}))
category = forms.ModelChoiceField(queryset=Category.objects.all(), widget=forms.ModelChoiceField(attrs={'class':'form-control'}))
(我本来打算使用字段=[]标签={}小部件={}格式,但我无法解决如何使用queryset字段来实现这一点)这是一个表单字段,而不是小部件
要更新widget类,可以按照以下方法进行操作:
class NewListingForm(forms.ModelForm):
# rest of your fields
category = forms.ModelChoiceField(
queryset=Category.objects.all(),
)
category.widget.attrs.update({'class': 'form-control'})
类NewListingForm(forms.ModelForm):
#你的其他领域
类别=forms.ModelChoiceField(
queryset=Category.objects.all(),
)
category.widget.attrs.update({'class':'formcontrol'})
您还可以通过将有效的小部件类指定为
类NewListingForm(forms.ModelForm):
#你的其他领域
类别=forms.ModelChoiceField(
queryset=Category.objects.all(),
widget=forms.Select(attrs={'class':'formcontrol'})
#'modelcooicefield'正在使用'Select'窗口小部件作为默认值
)
参考文献
class NewListingForm(forms.ModelForm):
# rest of your fields
category = forms.ModelChoiceField(
queryset=Category.objects.all(),
widget=forms.Select(attrs={'class': 'form-control'})
# `ModelChoiceField` is using the `Select` widget bu default
)