2

我正在尝试使用 CSS 设置表单样式。首先,除了官方文档之外,我还没有看到完整的示例,因此我将不胜感激任何博客条目或文章。

现在在我的表单上,一个典型的 Charfield 被翻译成这样的 html:

<input type="text" name="artists" id="id_artists" />

如果我的表单在某些字段上包含错误,则之前的 Charfield 会记住该值并执行以下操作:

<input type="text" name="artists" value="Pink Floyd" id="id_artists"  />

如何value="Pink Floyd"以 django 形式获取此值()?假设我的字段是{{form.artists}},我可以{{form.artists}}用作字段、{{form.artists.label}}标签{{form.artists.errors}}{{form.artists.help_text}},但是这个值呢?

提前致谢!

4

3 回答 3

4

专门创建输入字段,而不是依赖 django 自动创建它。

就像是:

<input type="text" name="artists" id="id_artists" value="{{form.artists.title}}" />

应该管用

于 2009-03-09T11:24:47.787 回答
2

data您可以从属性中获取该字段的当前值:

{{ form.artists.data }}

我看不到提到这一点的 Django 文档,但它可以工作......

于 2009-03-09T15:20:35.147 回答
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返回。

于 2011-03-06T05:45:33.263 回答