簡體   English   中英

{%url%}給出NoReverseMatch錯誤

[英]{% url %} gives NoReverseMatch error

我正在使用Django 1.4並收到以下錯誤

Reverse for 'dj' with arguments '()' and keyword arguments '{'dj_name': u"John O'Callaghan"}' not found.

在數據庫中使用John OCallaghan代替John O'Callaghan可以很好地工作,並且不會產生錯誤。

這是給出錯誤的行

<a href="{% url 'dj' dj_name=dj.name %}"><img src="{{ MEDIA_URL }}{{ dj.img }}" class="img-rounded" id="dj_img"/></a>

我在很多地方讀到,在Django 1.4中,您不應該在{% url %}中使用引號。 使用{% url dj dj_name=dj.name %}代替{% url 'dj' dj_name=dj.name %}會產生以下錯誤

TypeError - cannot concatenate 'str' and 'DJ' objects

urls.py

urlpatterns = patterns('hunt.views',
    url(r'^$', views.landing, name='landing'),
    url(r'^top100/$', views.top100, name='top100'),
    url(r'^top100/(?P<dj_name>[a-zA-Z0-9 &-]+)/$', views.dj, name='dj'),
)

看到您的網址后,我驚訝於它不能與“ O'Callaghan”一起使用。 您的正則表達式精確指定了它可以接受的字符:a到z,A到Z,0到9,空格,“&”和連字符。 撇號不在那里。 如果希望它接受撇號,則需要將其添加到該列表中。

r"^top100/(?P<dj_name>[a-zA-Z0-9 &-']+)/$"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM