Django {%url%}反向无法正常工作

时间:2012-04-06 04:16:34

标签: python django django-templates django-views

我在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。反向''带参数'()'和关键字参数'{}'找不到。

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

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

我的项目的urls.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 %}

3 个答案:

答案 0 :(得分:6)

答案:使用{%url'menus_index'%}。 {%load url from future%}使得报价成为每https://docs.djangoproject.com/en/1.4/ref/templates/builtins/#url

的要求

答案 1 :(得分:0)

也许这不是menus_index?粘贴完整的模板代码。

答案 2 :(得分:0)

你应该使用add变量进行反向,如下所示:{% url "menus_index" menu.slug %}