【问题标题】:Problems with django url template tag, {% url %}django url 模板标签的问题,{% url %}
【发布时间】:2011-10-22 18:02:59
【问题描述】:

您好,我正在尝试将不同的网址从我的网站传递到模板中。

我以为可以通过在模板中使用这个来完成

{% url myappname.module.views.urlfunction %}

但是返回一个错误,说“渲染时捕获AttributeError:'str'对象没有属性'regex'”

我不确定这意味着什么。我按照这个例子url template tag in django template

urlpatterns = patterns('',
url(r'^$', 'myappname.module.views.start'),

这是我在模板中输入的内容

{% url myappname.module.views.start %}

我也试过这个 url 模式和模板组合没有 avial:

urlpatterns = patterns('',
url(r'^$', 'myappname.module.views.start', name="home"),

{% url "home" %}

我做错了什么?

谢谢。

【问题讨论】:

  • 您在使用 {% url "home" %} 时收到错误消息?这是在 Django 模板中调用命名 URL 的正确方法。
  • 是的,我认为这是正确的,这令人沮丧。我收到错误 Caught AttributeError while rendering: 'str' object has no attribute 'regex'

标签: django django-templates


【解决方案1】:

在最后一个例子中,而不是

{% url "home" %}

试试

{% url home %}

不带引号

【讨论】:

【解决方案2】:

说真的,对于简单的情况,我会考虑在 django 中使用 {% url %} 方案。它们旨在提供某种您可能永远不会利用的灵活性,并且几乎可以保证它们会浪费您数小时的时间来尝试找出“正确”的方法。

只需使用 action="/login/" 或 action ="/home/",然后将节省的时间花在做有用的事情上,例如编写代码。

【讨论】:

    【解决方案3】:

    在模板顶部添加以下行:

    {% load url from future %}
    

    它将支持该模式

    {% url "VIEW_NAME" args... %}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-19
      • 2012-11-08
      • 2012-09-10
      • 1970-01-01
      • 2020-02-22
      • 2015-11-07
      • 1970-01-01
      • 2012-11-07
      相关资源
      最近更新 更多