我已經開始使用Django表單,因爲不久以前。我一直在通過寫作讓自己的表格產生自我:表格不是由模板生成的
{{ test_form.as_p }}
哪些工作成功。
我就決定來解決自定義此模板,但由於某種原因,該行:
{{ form.subject }}
不顯示形式。我是否誤解了documentation?我還檢查生成的HTML和它那種簡單地跳過了{{form.suject}}
下面是代碼:
模板:
<form action="/contact/" method="post">
{{ form.non_field_errors }}
<div class="fieldWrapper">
{{ form.subject.errors }}
<label for="id_subject">Email subject:</label>
{{ form.subject }}
</div>
<div class="fieldWrapper">
{{ form.message.errors }}
<label for="id_message">Your message:</label>
{{ form.message }}
</div>
<div class="fieldWrapper">
{{ form.sender.errors }}
<label for="id_sender">Your email address:</label>
{{ form.sender }}
</div>
<p><input type="submit" value="Send message" /></p>
和視圖相關聯:
def contact(request):
if request.method == 'POST':
form = contact_form(data=request.POST)
if form.is_valid():
subject = form.cleaned_data['subject']
message = form.cleaned_data['message']
sender = form.cleaned_data['sender']
recipents = ['[email protected]']
send_mail(subject, message, sender, recipents)
print 'mail sent'
return render_to_response('contact.html', {'contact_form' : contact_form}, context_instance=RequestContext(request))
當然和窗體類:
class contact_form(forms.Form):
subject = forms.CharField(max_length=100)
message = forms.CharField(max_length=1000, widget=forms.Textarea)
sender = forms.EmailField()
它看起來像在你看來你呈現形式'在上下文contact_form',你也不會將'form'實例傳遞給它。 – mVChr 2012-07-18 15:08:39