django url 模板标签的问题,% url %
Posted
技术标签:
【中文标题】django url 模板标签的问题,% url %【英文标题】: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' 【参考方案1】:在最后一个例子中,而不是
% url "home" %
试试
% url home %
不带引号
【讨论】:
谢谢你的作品。我明白为什么当我看到的所有示例都使用引号时这是必要的?你有解释吗? 不知道 - 我总是按照我在这里所说的那样使用它,没有任何引号等。 @sequoia: Check out the section on forwards compatibility here. 这已在 Django 1.5 中更改。 url 的名称应该用引号括起来。docs.djangoproject.com/en/1.5/ref/templates/builtins/#url【参考方案2】:说真的,对于简单的情况,我会考虑不在 django 中使用 % url % 方案。它们旨在提供某种您可能永远不会利用的灵活性,并且几乎可以保证它们会浪费您数小时的时间来尝试找出“正确”的方法。
只需使用 action="/login/" 或 action ="/home/",然后将节省的时间花在做有用的事情上,例如编写代码。
【讨论】:
【参考方案3】:在模板顶部添加以下行:
% load url from future %
它将支持该模式
% url "VIEW_NAME" args... %
【讨论】:
以上是关于django url 模板标签的问题,% url %的主要内容,如果未能解决你的问题,请参考以下文章
django 模板标签 url 仅在最后一个空 url 模式时有效