我想呈现一个没有db模型的简单窗体,但我得到错误。以下是代码:Django简单窗体“对象没有属性”is_hidden'“
from django import forms
from django.utils.safestring import mark_safe
class ContactForm(forms.Form):
category_options = (
('select category', '--Select Category--'),
('fire safety', 'Fire Safety'),
('batteries/solar panels', 'Batteries/Solar Panels'),
('cctv systems','CCTV Systems')
)
category = forms.ChoiceField(label="Select a Category", choices=category_options, required=True)
full_name = forms.CharField(required=False)
email = forms.EmailField()
phone = forms.CharField(widget=forms.IntegerField)
message = forms.CharField(widget=forms.Textarea(attrs={'cols': 10, 'rows': 10}))
def clean_email(self):
email = self.cleaned_data.get('email')
return email
我没有拿到手机的权利。我需要为电话号码添加验证,但无法找出使用Widget的正确方法。
我需要找到添加电话字段的准确方式。
我收到错误:
:AttributeError at /contact/
'IntegerField' object has no attribute 'is_hidden'
当我使用
phone = forms.CharField(widget=forms.NumberInput)
从不同领域的Python代码生成我的HTML是继我得到以下结果
<p>
<label for="id_email">Email:</label>
<input id="id_email" name="email" type="email">
</p>
<p>
<label for="id_phone">Phone:</label>
<input id="id_phone" name="phone" type="number">
</p>
我上面的两个字段都是用python代码生成的,但是email字段正确地应用了模板css。但“电话”字段不是呈现CSS。
请指教。
不知道为什么你要'类型= “数字”'对于手机领域。 –
只需使用CharField并在'def clean_phone(self):'方法内执行所有验证。 –
Avinash我这样做了,但我想可能有一些内置的方式来完成它。 –