【问题标题】:Template doesn't recognize url name模板无法识别 url 名称
【发布时间】:2014-02-15 18:03:37
【问题描述】:

我有这两个 url confs,它们引用了 2 个完全不同的视图:

 #category
    url(r'^(?P<cat>[^/]+)/$', 'reviews.views.category', name='category'),

    #produt
    url(r'^(?P<slug>[^/]+)/$', 'reviews.views.single_product', name='product_detail'),

我的模板中的这些链接:

{% url 'category' cat='eletronics' %}
{% url 'product_detail' slug=values.3.0 %}

但是,两个链接都转到“类别”视图,而不是第二个链接转到“产品详细信息”视图。

我知道这一点,因为当我单击第二个链接时,django 会返回一条消息,其中包含仅存在于“类别”视图中的变量名错误。 但是,如果更改 urlconfs 中的顺序,因此“product_detail”视图出现在“category”视图之前,那么两个链接都会转到“product_detail”视图。

如何解决?

【问题讨论】:

  • 请看这个答案stackoverflow.com/a/21801006/351760,它解释了一个几乎相同的问题。在您的情况下, '^(?P[^/]+)/$' 和 '^(?P[^/]+)/$' 都将匹配相同的网址。
  • 感谢您的回答

标签: django django-templates django-views


【解决方案1】:

您只需像这样更改类别网址

类别

url(r'^category/(?P<cat>[^/]+)/$', 'reviews.views.category', name='category'),
#produt
url(r'^(?P<slug>[^/]+)/$', 'reviews.views.single_product', name='product_detail'),

【讨论】:

    猜你喜欢
    • 2010-11-08
    • 2015-08-25
    • 2012-11-21
    • 2019-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-13
    • 1970-01-01
    相关资源
    最近更新 更多