我正在阅读Django的权威指南(v2)。
如果你想看一看http://dpaste.com/344698/,这是回溯
它给出了这个错误:
TemplateSyntaxError at /contact/
Could not parse the remainder: '-mail' from 'e-mail'
Template error
In template /home/jwxie/django-dev/mysite/contact/template/contact_form.html, error at line 5
and line 5 is {% block content %}
我在views.py中的代码
from django.shortcuts import render_to_response
from django.http import HttpResponseRedirect, HttpResponse
from django.core.mail import send_mail
def contact(request):
display_error = []
if request.method == 'POST':
if not request.POST.get('subject',''):
display_error.append('Enter a subject')
if not request.POST.get('message',''):
display_error.append('Enter a message')
if not request.POST.get('e-mail') and '@' not in request.POST['e-mail']:
display_error.append('Enter a valid e-mail address')
if not display_error:
send_mail(
request.POST['subject'],
request.POST['message'],
request.POST.get('e-mail','noreply@example.com'),
['siteowner@example.com'],
)
return HttpResponseRedirect('/contact/thanks/')
return render_to_response('contact_form.html',{
'subject': request.POST.get('subject',''),
'message': request.POST.get('message',''),
'e-mail': request.POST.get('e-mail',''),
'display_error': display_error,
})
def contact_thanks(request):
return HttpResponse('Thanks')
这是contact_form.html中的代码
{% extends "base.html" %}
{% block title %} Contact {% endblock %}
{% block content %}
{% block content-h1 %}<p>Feel free to contact us!</p> {% endblock %}
<form action="/contact/" method="post">
<p>Subject: <input type="text" name="subject" value="{{ subject }}"></p>
<p>Your e-mail (optional): <input type="text" name="e-mail" value="{{ e-mail }}"> </p>
<p>Message: <textarea name="message" rows="10" cols="50">{{ message }}</textarea></p>
<input type="submit" value="Submit">
</form>
{% if display_error %}
<ul>
{% for error in display_error %}
<li>{{error}}</li>
{% endfor %}
</ul>
{% endif %}
{% endblock %}
我有联系人作为应用程序,结构看起来像这样:我的网站/联系人,它有自己的模板我的网站/联系人/模板我相信setting.py是正确的…
你们觉得怎么样?任何帮助都是非常感谢的。我只是在玩弄示例代码。
发布于 2011-01-23 03:10:15
你为什么写“电子邮件”?模板变量不一定要是Python变量名吗?"e_mail"?
http://docs.djangoproject.com/en/dev/topics/templates/#variables
上面写着
变量名由字母数字字符和下划线(“_”)的任意组合组成。
https://stackoverflow.com/questions/4772065
复制相似问题