web-dev-qa-db-ja.com

Django初心者: "リバースが見つかりません"

Django形式の行があります:

{% for aa in my_array %}

これがこのエラーを引き起こしているようです:

テンプレートエラー

レンダリング中に例外が発生しました:引数 '(' '、)'およびキーワード引数 '{}'が見つからない 'dev_env.profiles.views.viewPlan'のリバース。

このエラーメッセージは実際にはどういう意味ですか?

どちらかの行が正しいと思われますが、エラーメッセージが間違っています。または、エラーは実際のものですが、この行は赤ニシンです。

いったい何を探したらいいの?

更新:Pauloはこれを以下にソートしました。

実際、私は{% url viewPlan planId %}数行離れていますが(報告されたエラー行が間違っていたため)、この場合はplanIdが空だったため、エラーがトリガーされました。

23
interstar

テンプレートで次のようなことを行うviewPlanという名前のビューがありますか。

{% url viewPlan %}

またはビューでこのようなもの:

reverse('viewPlan')

それを実行し、次のような行がない場合:

url(r'^whatever/url/$', 'dev_env.profiles.views.viewPlan', name="viewPlan"),

...あなたのURL設定では、それがあなたが得ているエラーだと思います。または、おそらく、viewPlan URLで値(おそらくidまたは何か)をキャプチャしていますが、URLを逆にするときに引数を渡していません。したがって、次のように正規表現で値をキャプチャしている場合:

url(r'^plans/(\d+)$', 'dev_env.profiles.views.viewPlan', name="viewPlan"),

あなたはそれをこのように呼ぶ必要があります:

{% url viewPlan 15 %}

またはこのように:

reverse('viewPlan', args=[15]);

どこ 15は明らかに、キャプチャされた値が期待するものです。

44

私も同じ問題を抱えていました。私の場合、メインのurls.pyファイルに子アプリのURLを追加するのを忘れていました。

urlpatterns = [
    re_path("admin/", admin.site.urls),
    re_path(r"^core/", include("core.urls")),
    re_path(r"^$", welcome, name="welcome")
]
3
maccaroo

名前の引数にapp_labelを含める必要がある場合があります

定義するときのようにapp_name='core'core.urls内

次に、viewPlanパスを逆にすると次のようになります。

reverse('core:viewPlan', args=[15]);
1
C.K.