0

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 %}

/menus/ エラーで NoReverseMatch が発生します。引数 '()' とキーワード引数 '{}' を持つ '' の逆が見つかりません。

私のアプリケーションの 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 %}
4

3 に答える 3

0

多分これはmenus_indexではありませんか?完全なテンプレートコードをこれに貼り付けます。

于 2012-04-06T04:21:51.367 に答える
0

逆に add variable を使用する必要があります。次のように考えてください。{% url "menus_index" menu.slug %}

于 2014-05-13T16:40:51.843 に答える