0

Django で次のように定義された URL があります。

# http://localhost:8000/quiz/grammar/beginner/1/question

url(r'^(?P<page_name>[-\w]+)/(?P<level>\w+)/(?P<quiz_id>\d+)/question/$', views.question, name='question')

静的な値を渡すと、エラーは発生しません。

<a href="{% url 'quiz:question' "fds" "fds" 1 %}">{{ i.name }}</a>

私はすでにこのページにいるので、次http://localhost:8000/quiz/grammar/beginner/のような URL を渡すことを考えました:

{% for i in quizes %}

    <a href="{% url 'quiz:question' i.id %}">{{ i.name }}</a>

{% endfor %}

namespace定義しました。しかし、私はこのエラーが発生します:

Reverse for 'question' with arguments '(1L,)' and keyword arguments '{}' not found.

私は私の見解でこのようにやっています:

def question(request, quiz_id):

どうしたの?

編集:これを試してみましたが、まだ運がありません:

def question(request, page_name, level, quiz_id):
4

1 に答える 1

0

url タグは絶対 URL を返します。現在のページを認識しないため、タグを使用するときに引数levelと引数を省略することはできません。quiz

page_nameテンプレート コンテキストにとがある場合levelは、これらの変数を url タグで使用できます。

<a href="{% url 'quiz:question' page_name level i.id %}">{{ i.name }}</a>

page_nameURL でと引数をキャプチャする場合levelは、それらを受け入れるようにビュー関数を変更するのが正しいです。

def question(request, page_name, level, quiz_id):
于 2013-09-18T10:16:34.797 に答える