我想呈現一個沒有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我這樣做了,但我想可能有一些內置的方式來完成它。 –