【发布时间】:2021-12-28 13:40:17
【问题描述】:
我正在使用 Django 3.2,我正在尝试创建一个表单类,其中包含从数据库模型填充的字段(类别)。
这是我的表单类的 sn-p:
class ArticleForm(forms.ModelForm):
# ...
class Meta:
model = Article
fields = ['title', 'teaser', 'category', 'guest_author','content', 'tags', 'is_published']
categories = [] #forms.ModelChoiceField(queryset=ArticleCategory.objects.all().order_by('name'))
widgets = {
'guest_author': forms.TextInput(attrs={'class': 'form-control input'}),
'title': forms.TextInput(attrs={'class': 'form-control input'}),
'teaser': forms.Textarea(attrs={'class': 'form-control input'}),
'category': forms.Select(choices=categories, attrs={'class': 'form-control input'}),
'content': forms.Textarea(attrs={'class': 'form-control input'}),
'tags': forms.TextInput(attrs={'class': 'form-control input'}),
'is_published': forms.CheckboxInput(attrs={'class': 'form-control-input'})
}
我发现我是否将字段创建为这样的实例属性:
category = forms.ModelChoiceField(queryset=ArticleCategory.objects.all().order_by('name'))
然后我就可以使用表单了(不会出现错误)。但是我希望能够使用上面的声明指定要用于该字段的小部件 - 无论如何都可以这样做 - 或者我是否仅限于将该字段声明为表单的实例变量?
【问题讨论】:
标签: django django-forms