渲染时ViewDoesNotExist

时间:2012-08-09 14:49:08

标签: django

我已将views.py拆分为两个文件,按此组织:

views/
  __init__.py
  public.py
  private.py

在一个视图中(在公共场合)我渲染一个具有以下内容的模板:

<a href='{% url app.views.private.login_view %}'>Login</a>

加载网址时出现以下错误:

  位于/ 的

TemplateSyntaxError      

渲染时抓住ViewDoesNotExist:   无法导入app.views.private.app.views。错误是:没有模块   名为app.views

我做错了什么?

3 个答案:

答案 0 :(得分:0)

我建议使用naming your url patterns,然后使用{% url %}标记中的名称。

答案 1 :(得分:0)

尝试命名您的网址,然后在{% url ... %}标记内使用该名称,如下所示:

#urls.py
url(r'^xyz/abc/$','app.views.private.login_view', name='login_view'),

#login_view.html (template-code)
<a href='{% url login_view %}'>Login</a>

答案 2 :(得分:0)

您使用的是{% load url from future %}吗?如果是这样,您需要在网址周围加上引号,使其为{% url 'app.views.private.login_view' %}

Django 1.3的发行说明解释了它。 https://docs.djangoproject.com/en/dev/releases/1.3/#changes-to-url-and-ssi