我正在尝试使用CSS设置表单样式。首先,我没有看到完整的例子,除了官方文档,所以我将不胜感激任何博客条目或文章。
现在在我的表单上,一个典型的Charfield被翻译成html,如下所示:
<input type="text" name="artists" id="id_artists" />
如果我的表单在某些字段中包含错误,则之前的Charfield会记住该值并执行:
<input type="text" name="artists" value="Pink Floyd" id="id_artists" />
如何在django表单中获取此值(value="Pink Floyd"
)?我的字段为{{form.artists}}
,我可以使用{{form.artists}}
作为字段,{{form.artists.label}}
作为标签,{{form.artists.errors}}
和{{form.artists.help_text}}
,但这个值怎么样?
提前致谢!
答案 0 :(得分:4)
专门创建输入字段,而不是依靠django自动创建它。
类似的东西:
<input type="text" name="artists" id="id_artists" value="{{form.artists.title}}" />
应该有效
答案 1 :(得分:2)
您可以从data
属性中获取该字段的当前值:
{{ form.artists.data }}
我看不到Django文档提到这一点,但它有效......
答案 2 :(得分:0)
您还可以向表单类添加其他验证,以便对表单数据执行某些操作。来自djangobook.com:
from django import forms
class ContactForm(forms.Form):
subject = forms.CharField(max_length=100)
email = forms.EmailField(required=False)
message = forms.CharField(widget=forms.Textarea)
def clean_message(self):
message = self.cleaned_data['message']
num_words = len(message.split())
if num_words < 4:
raise forms.ValidationError("Not enough words!")
return message
在clean_message
方法内部,您可以使用self.cleaned_data
字典访问给定字段。此词典适用于任何经过验证的表单。
请务必返回该字段,在这种情况下为message
,否则会返回None
。