2015-10-06 50 views
2

我有以下Django的方案:如何Django的EmailField()加上初始默認值

forms.py

from django import forms 

class ContactForm(forms.Form): 
    name_param  = forms.CharField() 
    email_param  = forms.EmailField() 
    message_param  = forms.CharField(widget=forms.Textarea) 
    recaptcha_param = ReCaptchaField() 

我的問題是:

enter image description here

我想實施類似this的東西。 此外,我們希望啓用直接覆蓋默認值覆蓋作爲我們類型。

+1

這些是不同的事情。 「覆蓋作爲我們類型」的東西有一個佔位符,但這不是默認值;如果您不輸入任何數據將不會與表單一起提交的內容。 –

+0

@DanielRoseman:那是什麼'佔位符? – neversaint

+0

我不明白這個問題。 –

回答

7

您可以將佔位符屬性添加到您的email_param領域。所以,你的forms.py是:

from django import forms 

class ContactForm(forms.Form): 
    name_param  = forms.CharField() 
    email_param  = forms.EmailField(widget=forms.EmailInput({'placeholder': '[email protected]'})) 
    message_param  = forms.CharField(widget=forms.Textarea) 
    recaptcha_param = ReCaptchaField() 
+1

因爲它是一個電子郵件字段,所以最好使用['EmailInput'](https://docs.djangoproject.com/en/1.8/ref/forms/widgets/#emailinput)而不是'TextInput'作爲窗口小部件。 – Alasdair

+0

好的,謝謝 - 編輯我的回答:) – Oli

1

這只是HTML

<input type="email" placeholder="This is used to contact you..." name="email"/> 
+0

最好是在表單中設置佔位符,就像Oli的答案一樣,而不是在模板中手動呈現電子郵件字段。 – Alasdair

+1

我同意,我只是指出它只是一個HTML屬性。 – user1797792

0

就注意到

forms.EmailField()

不採取作爲參數的Widget。

你能做到這一點可能是

models.EmailField的方式(MAX_LENGTH = 255,默認= '你缺省值或[email protected]')

更強健的HTML解決方案,爲您提供管理數據庫的方法