【问题标题】:Django url template tag {% url %} error on django 1.4Django 1.4 上的 Django url 模板标签 {% url %} 错误
【发布时间】:2012-11-08 13:32:28
【问题描述】:

我做了很多次,它成功了,但这次不行。

当我尝试使用 {% url path.to.view %} django 的模板标签时出现此错误:

/login/ 'str' 对象的 AttributeError 没有属性 'regex'


urls.py(主要)

urlpatterns= patterns('', (r'', include('authenticate.urls')),  )

urls.py(我的应用)

urlpatterns= patterns('authenticate.views', url(r'^login/$','login'),)

login.html

{{ form }}
{% url authenticate.views.login %} < --- Error comes here

在视图中:

return render_to_response('login.html',{'form':form},context_instance=RequestContext(request),  )

也不适用于:

 {% url authenticate.views.login %}
 {% url 'authenticate.views.login' %}
 {% url "authenticate.views.login" %}

这是在 django 1.4 上;我可能做错了什么,或者我在那个版本的 django 中错过了什么?

提前致谢!


更新:

我还可以补充一点,在我的视图中使用 reverse 不起作用,并给我上面相同的错误:

from django.core.urlresolvers import reverse

result = reverse('django.contrib.auth.views.password_reset')         
HttpResponse(result)

错误:

/abc/ 'str' 对象的 AttributeError 没有属性 'regex'

【问题讨论】:

    标签: django django-templates django-1.4


    【解决方案1】:

    检查这个 https://docs.djangoproject.com/en/1.4/topics/http/urls/

    您可以在您的 URL 中添加一个名称以帮助引用。 还要检查你是如何声明模式的。应该这样做:

    urlpatterns = patterns('',
        url(r'^archive/(\d{4})/$', archive, name="full-archive"),
        url(r'^archive-summary/(\d{4})/$', archive, {'summary': True}, "arch-summary"),
    ) 
    

    【讨论】:

    • 我尝试在上面提到的 url 中为我的视图命名,但它给出了相同的结果,我只是忘记在我的问题中列出它。问题不在 urls 文件中,因为当我从模板中删除 {% url view %} 模板标签时,一切顺利。这里的问题出在模板 url 标签中。
    【解决方案2】:

    我明白了:))

    问题不在 url 模板标签中,而在另一个 urls 文件中,该文件已包含在主文件中;直到我的应用程序才出现问题。点击 url 模板标签或 django 的 reverse 方法,否则,django 不会抱怨任何 url!

    【讨论】:

      猜你喜欢
      • 2012-09-10
      • 2014-07-17
      • 2012-11-07
      • 2011-10-22
      • 2011-10-05
      • 1970-01-01
      • 2010-12-19
      • 1970-01-01
      • 2015-11-07
      相关资源
      最近更新 更多