样式表和django形成值

时间:2009-03-09 11:08:35

标签: django django-forms

我正在尝试使用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}},但这个值怎么样?

提前致谢!

3 个答案:

答案 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