【问题标题】:url template tag in django templatedjango模板中的url模板标签
【发布时间】:2010-12-19 03:43:49
【问题描述】:

我试图在django中使用url模板标签,但没有运气,

我这样定义了我的 urls.py

urlpatterns = patterns('',
    url(r'^analyse/$',              views.home,  name="home"),
    url(r'^analyse/index.html',     views.index, name="index"),
    url(r'^analyse/setup.html',     views.setup, name="setup"),
    url(r'^analyse/show.html',      views.show,  name="show"),
    url(r'^analyse/generate.html',  views.generate, name="generate"),

我像这样在我的视图中定义了 url 模式

{% url 'show'%}

然后我收到此错误消息

渲染时遇到异常: 使用参数反转“显示” '()' 和关键字参数 '{}' 不是 找到了。

原始回溯(最近调用 最后):文件 "/Library/Python/2.5/site-packages/django/template/debug.py", 第 71 行,在 render_node 中 结果 = node.render(context) 文件 "/Library/Python/2.5/site-packages/django/template/defaulttags.py", 第 155 行,在渲染中 nodelist.append(node.render(context)) 文件 "/Library/Python/2.5/site-packages/django/template/defaulttags.py", 第 382 行,在渲染中 raise e NoReverseMatch: 使用参数 '()' 反转 ''show'' 和 未找到关键字参数“{}”。

我想知道为什么 django 无法渲染?在模板中定义它的正确方法是什么?

【问题讨论】:

    标签: django-templates django-urls


    【解决方案1】:

    重要提示:这是针对 django 1.4 的。在 django 1.5 中正好相反。

    尝试使用不带引号的网址名称

    {% url show %}
    

    不是这个

    {% url 'show'%}
    

    【讨论】:

    • 坏主意。这种使用 URL 模板标签的方式已被弃用,并且在 Django 1.5 中不起作用。
    【解决方案2】:

    您可能有一些视图尚未实现。当使用 {% url ... %} 过滤器时,模板引擎似乎试图从 urls.py 中的模式中查找所有视图。

    它通常会在 urls.py 中显示最后一个模式的错误。

    尝试注释掉您尚未实现的每个 url 模式。

    还要确保使用完整路径:

    {% url myapp.views.home %}
    

    url 模板过滤器看起来真的很不稳定。尽量保持future compatibility

    【讨论】:

      【解决方案3】:

      您可能需要更具体地说明您尝试使用的视图:

      {% url appname.views.show %}
      

      【讨论】:

      • 我正在尝试了解此功能 - 它叫什么?我在模板上搜索了 Django-Project 的文档,他们没有提到 {% url .... }
      【解决方案4】:

      问题是你在'show'周围的单引号。将此更改为“显示”,它应该适合您。

      here

      【讨论】:

      • 它从来没有为我工作过,单引号或双引号。删除引号有效,这很奇怪。 1.5 使用双引号。
      • 单引号工作得很好,Django 1.6。只需确保将您的参数放在引号之外!我花了很长时间才找到那个错误,模板系统很高兴地生成了没有错误指示的空 URL。
      【解决方案5】:

      对于什么是值得的,我有同样的问题,虽然我现在不记得原因,但这为我解决了。来自我正在开发的 SCRUM 应用程序的示例。

      url(r'^$', 'scrum.views.index',  name='scrum-index'),
      

      【讨论】:

        猜你喜欢
        • 2022-11-25
        • 2010-09-20
        • 2018-10-21
        • 2021-02-15
        • 2012-09-10
        • 1970-01-01
        • 2011-10-22
        • 2021-08-31
        • 2015-11-07
        相关资源
        最近更新 更多