我有一個簡單的表單。每當我點擊提交,我得到一個空白頁。不知道我做錯了什麼。我是django的新手。我在這裏閱讀了幾個問題和答案,但我似乎無法解決這個問題。感謝您的幫助Django 1.5簡單表格
views.py
from django.views.decorators.csrf import csrf_exempt, requires_csrf_token, csrf_protect
from django import http
from django.http import HttpResponse, HttpResponseRedirect
from django.conf import settings
from contact import ContactForm
from django.template import RequestContext, Context
from django import forms
from django.core.mail import send_mail, BadHeaderError
from django.shortcuts import render_to_response, get_object_or_404
from django.core.context_processors import csrf
@csrf_protect
def contactview(request):
if request.method == 'POST': # If the form has been submitted...
form = ContactForm(request.POST)
#return HttpResponse('Invalid header found.') I edited and removed this
if form.is_valid():
subject = form.cleaned_data['subject']
name = form.cleaned_data['name']
sender = form.cleaned_data['sender']
message = "The following feedback was submitted from %s \n\n" % (sender)
message += form.cleaned_data['message']
recipients = ['[email protected]']
cc_myself = form.cleaned_data['cc_myself']
if cc_myself:
recipients.append(sender)
try:
send_mail(subject, message, sender, recipients, fail_silently=False)
return HttpResponseRedirect('/thankyou/')
except BadHeaderError:
return HttpResponse('Invalid header found.')
else:
form = ContactForm()
return render_to_response('contact.html', {'form': form}, context_instance=RequestContext(request))
contact.py
from django import forms
# A simple contact form with five fields.
class ContactForm(forms.Form):
subject = forms.CharField(max_length=100)
name = forms.CharField(max_length=100)
message = forms.CharField(widget=forms.Textarea())
sender = forms.EmailField()
cc_myself = forms.BooleanField(required=False)
在我的模板
<form action="" method="post">{% csrf_token %}
<tr><th><label for="id_sender">Your email:</label></th>
<td><input class="text" type="text" name="sender" id="id_sender" /></td></tr>
<tr><th><label for="id_sender">Name:</label></th>
<td><input class="text" type="text" name="name" id="id_name" /></td></tr>
<tr><th><label for="id_subject">Subject:</label></th>
<td><input class="text" id="id_subject" type="text" name="subject" maxlength="100" /></td></tr>
<tr><th><label for="id_message">Message:</label></th>
<td><textarea class="styletextarea" name="message" id="id_message" rows="10" cols="35" /></textarea></td></tr>
<tr><th><label for="id_cc_myself">Cc myself:</label></th>
<td><input type="checkbox" name="cc_myself" id="id_cc_myself" /></td></tr>
<tr><td></td><td><input class="button" type="submit" value="Send" /></td></tr>
</form>
</table>
</div>
歡迎Django的。我建議首先通過http://djangobook.com/上的一些教程進行工作。 – Brandon
謝謝@brandon,我看了這本書。我已經看過他們的例子,這是非常類似於其他例子在stackoverflow ...仍然我得到了相同的結果。 – optimcode
你的設置文件中是否有'DEBUG = True'?問題發生在本地開發中,還是僅在部署項目時發生,或兩者兼而有之? – technivore