2011-01-23 57 views
0

我下面的明確指導的Django(V2)Django的 - 無法解析餘:從「電子郵件」

這裏的回溯,如果你想看看「-mail」 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','[email protected]'), 
         ['[email protected]'], 
      ) 
      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 %} 

我有過接觸的應用程序代碼,結構是這樣的:mysite的/接觸,它有它自己的模板的mysite /聯繫人/模板 我可以肯定的設置。 py是正確的...

你們認爲什麼?任何幫助表示讚賞。我只是玩弄示例代碼。

回答

2

你爲什麼寫「電子郵件」?不要模板變量必須是Python變量名稱嗎? 「電子郵件」?

http://docs.djangoproject.com/en/dev/topics/templates/#variables

它說

Variable names consist of any combination of alphanumeric characters and the underscore ("_").

+0

很漂亮,洛特。事實上,作者犯了這個錯誤。感謝您指出。他們使用 - 在視圖和模板中 – CppLearner