我有一个ModelForm如下:
class ArticleForm(forms.ModelForm):
title = forms.CharField(max_length=200)
body = forms.CharField(widget=forms.Textarea)
new_status = forms.CharField(label="Status", max_length=1, widget=forms.Select(choices=APPS_ARTICLE_STATUS))
tags = forms.CharField(label="Generic Tags", max_length=200, widget=forms.TextInput(attrs={'size':'40'}))
class Meta:
model = Article
fields = ['title', 'body']
此标题,正文和新状态直接从文章模型加载。我想手动填充标签字段。我该怎么做呢?
提前致谢。
答案 0 :(得分:0)
您可以通过 __ init ___ 方法设置初始属性。此外,如果在模型上设置了verbose_name,并且您喜欢默认小部件,则无需再次指定每个字段标签/小部件。
class ArticleForm(forms.ModelForm):
tags = forms.CharField(label="Generic Tags", max_length=200, widget=forms.TextInput(attrs={'size':'40'}))
class Meta:
model = Article
fields = ['title', 'body', 'new_status']
def __init__(self, *args, **kwargs):
super(ArticleForm, self).__init__(*args, **kwargs)
self.fields["tags"].initial = "Some initial value"
我假设您的初始值将以某种方式动态。如果它真的是静态的,你可以在CharField()上将初始值作为参数传递。