Django{%url%}反向不工作

2024-06-11 18:01:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Django 1.4项目中有一个观点:

def index(request):
    print reverse('menus_index')
    latest_menu_list = Menu.objects.all().order_by('name')
    return render_to_response('menus/index.html', {'latest_menu_list': latest_menu_list})

这按预期工作,并打印出反向URL,即/menus/。

在index.html模板(此视图调用)中,我有:

{% url menus_index %}

这会导致NoReverseMatch at/menus/error。找不到带参数“()”和关键字参数“{}”的“”的反向。

我的应用程序的url.py是:

urlpatterns = patterns('menus.views',
url(r'^$','index', name='menus_index'),
url(r'^(?P<menu_id>\d+)/$','detail', name='menus_detail'),
)

它包含在我的项目的url.py文件中。

我做错什么了?

更新:

下面是完整的index.html模板代码:

{% extends "base.html" %}
{% load url from future %}

{% block title %}
Menu Index
{% endblock %}

{% block content %}
{% if latest_menu_list %}
<ul>
    {% for menu in latest_menu_list %}
    <li><a href="{% url menus_index %}/{{ menu.id }}/">{{ menu.name }}</a></li>
    {% endfor %}
</ul>
{% else %}
   <p>No menus are available.</p>
{% endif %}
{% endblock %}

Tags: 项目namepy模板idurl参数index
3条回答

答:请使用{%url'菜单\u索引'%}。{%load url from future%}使每个https://docs.djangoproject.com/en/1.4/ref/templates/builtins/#url都需要引号

也许这不是菜单索引?粘贴完整的模板代码。

您应该使用add variable进行反向操作,可以这样想:{% url "menus_index" menu.slug %}

相关问题 更多 >