2010-09-27 83 views
1

我得到一个TemplateSyntaxError,这只发生在我的开发服务器上,但在本地的django测试服务器上正常工作。Django TemplateSyntaxError

这里的错误

Caught SyntaxError while rendering: invalid syntax (urls.py, line 1) 

和HTML:

<li><a href="{% url plan.views.profile %}">Plan Details</a></li> 

,这里是纵断面图:

@login_required 
def profile(request): 
... 

这里的回溯:

Traceback: 
File "/django/lib/python2.5/django/core/handlers/base.py" in get_response 
    100.      response = callback(request, *callback_args, **callback_kwargs) 
File "/django/lib/python2.5/django/contrib/auth/decorators.py" in _wrapped_view 
    25.     return view_func(request, *args, **kwargs) 
File "/django/myapp/plan/views.py" in profile 
    121.    }, context_instance=RequestContext(request)) 
File "/django/lib/python2.5/django/shortcuts/__init__.py" in render_to_response 
    20.  return HttpResponse(loader.render_to_string(*args, **kwargs), **httpresponse_kwargs) 
File "/django/lib/python2.5/django/template/loader.py" in render_to_string 
    186.  return t.render(context_instance) 
File "/django/lib/python2.5/django/template/__init__.py" in render 
    173.    return self._render(context) 
File "/django/lib/python2.5/django/template/__init__.py" in _render 
    167.   return self.nodelist.render(context) 
File "/django/lib/python2.5/django/template/__init__.py" in render 
    796.     bits.append(self.render_node(node, context)) 
File "/django/lib/python2.5/django/template/debug.py" in render_node 
    72.    result = node.render(context) 
File "/django/lib/python2.5/django/template/loader_tags.py" in render 
    125.   return compiled_parent._render(context) 
File "/django/lib/python2.5/django/template/__init__.py" in _render 
    167.   return self.nodelist.render(context) 
File "/django/lib/python2.5/django/template/__init__.py" in render 
    796.     bits.append(self.render_node(node, context)) 
File "/django/lib/python2.5/django/template/debug.py" in render_node 
    72.    result = node.render(context) 
File "/django/lib/python2.5/django/template/loader_tags.py" in render 
    62.    result = block.nodelist.render(context) 
File "/django/lib/python2.5/django/template/__init__.py" in render 
    796.     bits.append(self.render_node(node, context)) 
File "/django/lib/python2.5/django/template/debug.py" in render_node 
    72.    result = node.render(context) 
File "/django/lib/python2.5/django/template/loader_tags.py" in render 
    139.    return self.template.render(context) 
File "/django/lib/python2.5/django/template/__init__.py" in render 
    173.    return self._render(context) 
File "/django/lib/python2.5/django/template/__init__.py" in _render 
    167.   return self.nodelist.render(context) 
File "/django/lib/python2.5/django/template/__init__.py" in render 
    796.     bits.append(self.render_node(node, context)) 
File "/django/lib/python2.5/django/template/debug.py" in render_node 
    72.    result = node.render(context) 
File "/django/lib/python2.5/django/template/defaulttags.py" in render 
    253.    return self.nodelist_false.render(context) 
File "/django/lib/python2.5/django/template/__init__.py" in render 
    796.     bits.append(self.render_node(node, context)) 
File "/django/lib/python2.5/django/template/debug.py" in render_node 
    72.    result = node.render(context) 
File "/django/lib/python2.5/django/template/defaulttags.py" in render 
    253.    return self.nodelist_false.render(context) 
File "/django/lib/python2.5/django/template/__init__.py" in render 
    796.     bits.append(self.render_node(node, context)) 
File "/django/lib/python2.5/django/template/debug.py" in render_node 
    72.    result = node.render(context) 
File "/django/lib/python2.5/django/template/defaulttags.py" in render 
    251.    return self.nodelist_true.render(context) 
File "/django/lib/python2.5/django/template/__init__.py" in render 
    796.     bits.append(self.render_node(node, context)) 
File "/django/lib/python2.5/django/template/debug.py" in render_node 
    72.    result = node.render(context) 
File "/django/lib/python2.5/django/template/defaulttags.py" in render 
    366.    url = reverse(self.view_name, args=args, kwargs=kwargs, current_app=context.current_app) 
File "/django/lib/python2.5/django/core/urlresolvers.py" in reverse 
    350.    *args, **kwargs))) 
File "/django/lib/python2.5/django/core/urlresolvers.py" in reverse 
    271.   possibilities = self.reverse_dict.getlist(lookup_view) 
File "/django/lib/python2.5/django/core/urlresolvers.py" in _get_reverse_dict 
    193.    self._populate() 
File "/django/lib/python2.5/django/core/urlresolvers.py" in _populate 
    173.      for name in pattern.reverse_dict: 
File "/django/lib/python2.5/django/core/urlresolvers.py" in _get_reverse_dict 
    193.    self._populate() 
File "/django/lib/python2.5/django/core/urlresolvers.py" in _populate 
    162.   for pattern in reversed(self.url_patterns): 
File "/django/lib/python2.5/django/core/urlresolvers.py" in _get_url_patterns 
    243.   patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module) 
File "/django/lib/python2.5/django/core/urlresolvers.py" in _get_urlconf_module 
    238.    self._urlconf_module = import_module(self.urlconf_name) 
File "/django/lib/python2.5/django/utils/importlib.py" in import_module 
    35.  __import__(name) 

我检查了我的urls.py文件,它很好。第一行是:

from django.conf.urls.defaults import * 

回答

3

在你的urls.py中,通过url函数使用命名的url。

urlpatterns = patterns('your_app.views', 
    url(r'^somehiing/$', 'your_view_function', name='my_view'), 
) 

然后在您的模板中使用{% url my_view %}

如果没有帮助,请粘贴您的urls.py - 也许这只是一些微小的语法错误。

+0

我认为我的网址模式很好,因为它在本地工作正常,我认为如果我在urls.py文件中犯了一个语法错误,django会抛出一个不同的错误。 – imns 2010-09-27 20:49:29

+2

不一定。你可以有一个'url()',它可以很好地服务于页面(转发分辨率),但不能用'reverse()';正向和反向分辨率是相对独立的。请粘贴具有'plan.views.profile'视图的'urls.py'中的行。 – 2010-09-27 20:53:04

+1

尝试ars的建议,如果它不起作用粘贴urls.py - 这就是我现在可以告诉的。 – bx2 2010-09-27 20:53:40

0

这里有一种可能性。你的意见文件的路径似乎是/django/myapp/plan/views.py

File "/django/myapp/plan/views.py" in profile 
    121.    }, context_instance=RequestContext(request)) 

如果你的Python路径被配置为包括/django,那么你需要你的模板/ HTML更改为:

{% url myapp.plan.views.profile %} 

如果这情况并非如此,那么根据bx2的建议,您可能需要检查您的urls.py文件是否有语法错误。

相关问题