我有一个包含一些字段的内容,但我的css
类适用于EmailField
以外的所有文件。我也试过sender.widget.attrs.update({'class':"contatct-form"})
但它仍然不起作用(只是改变字段的大小)。有人知道问题是什么吗?因为我的所有搜索都没有成功。
形式:
from django import forms
class NameForm(forms.Form):
your_name = forms.CharField(initial='Your name', max_length=100)
sender = forms.EmailField()
#sender.widget.attrs.update({'class':"contatct-form"})
message = forms.CharField(widget=forms.Textarea)
模板:
<div class="contatct-form">
<form action="" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="send" />
</form>
</div>
答案 0 :(得分:11)
您可能遇到的问题是因为您尚未将小部件分配给 EmailField(),更改为此(如@Todor所说)应该可以正常工作:
...
sender = forms.EmailField(
widget=forms.EmailInput(attrs={'class': 'contatct-form'})
)
如果由于某种原因(可能是错误的CSS样式)无效,您可以直接更改 css / 类中的样式,如下所示:
div.contatct-form form input[type=email] {
/* your changes here... */
}
希望这有帮助。
答案 1 :(得分:1)
我们必须在 init 方法中为一个字段或所有带有for循环的字段执行此操作。
class NameForm(forms.Form):
def __init__(*args, **kwargs):
super(NameForm, self).__init__(*args, **kwargs)
self.fields['sender'].widget.attrs.update({'class':"contatct-form"})