简体   繁体   中英

Generic Views NoReverseMatch when using {% url %} in Django

I have a problem to do the reverse command 'url' from the template base.html.

URLS.conf my file looks like this:

dic_info_artigo = {
                  'queryset': Artigo.modificado.all(),
                  'date_field': 'data_pub',
}

urlpatterns = patterns('django.views.generic.date_based',
    (r'^$', 'archive_index', dic_info_artigo,'artigos'),

    (r'^(?P<year>\d{4})/$','archive_year', dic_info_artigo,'artigos_ano'),
    (r'^(?P<year>\d{4})/(?P<month>\w{3})/$',
        'archive_month', dic_info_artigo,'artigos_mes'),
    (r'^(?P<year>\d{4})/(?P<month>\w{3})/(?P<day>\d{2})/$',
        'archive_day', dic_info_artigo,'artigos_dia'),
    (r'^(?P<year>\d{4})/(?P<month>\w{3})/(?P<day>\d{2})/(?P<slug>[-\w]+)/$',
        'object_detail', dic_info_artigo,'detalhe_artigo'),
)

base.html

<a href="{% url artigos %}"> Artigos </ a>

The error:

dictionary update sequence element # 0 has length 1; 2 is required

Already tried using the parameter 'name=', i change the value , but it did not work

url(r'^$', 'archive_index', dic_info_artigo, name='artigos'),

What am I doing wrong? Any tips?

Thanks.

The error message suggests that you have tried to name a view using something like:

(r'^my_url$', 'my_view', 'my_view')

However, the third argument should be a dictionary, not the name of a view.

To prevent errors like this, I recommend always using the url shortcut and naming the url pattern:

url(r'^my_url$', 'my_view', name='my_view')

However, you could pass an empty dictionary as the third argument if prefer:

(r'^my_url$', 'my_view', {}, 'my_view')

The urls.py you have posted looks ok, so the problem is probably in a different urls.py . If you're lucky, the full traceback might give you the exact line of the module where the error is occurring.

使用url()命名URL,然后在模板文件中尝试以下操作。

{% url 'artigos' %}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM