Django エラー 『NoReverseMatch at … '…' is not a registered namespace』 対策

 

{{DZ_TITLE}}

DjangoのエラーNoReverseMatch at … ‘…’ is not a registered namespaceの対応方法です。
テンプレートの中で、テンプレートを呼び出すときにおこることのあるメッセージです。

対応方法

app_name = ‘polls’ の記載を忘れていませんか?
※注意:pol;sは本家のチュートリアルでのアプリケーション名です。
    各自、自分の作っているアプリケーション名に書き換えてください。

polls/urls.py

from django.urls import path

from . import views

app_name = 'polls'
urlpatterns = [
    path('', views.index, name='index'),
]

polls/templates/polls/detail.html

<h1>{{ question.question_text }}</h1>

{% if error_message %}<p><strong>{{ error_message }}</strong></p>{% endif %}

<form action="{% url 'polls:vote' question.id %}" method="post">
{% csrf_token %}
{% for choice in question.choice_set.all %}
    <input type="radio" name="choice" id="choice{{ forloop.counter }}" value="{{ choice.id }}">
    <label for="choice{{ forloop.counter }}">{{ choice.choice_text }}</label><br>
{% endfor %}
<input type="submit" value="Vote">
</form>

{% url ‘polls:vote’ question.id %} でネームスペースpollsを使うためのおまじないとして、 app_name = ‘polls’ は重要になります。

関連記事

Django 目次- Python
Django 目次 - Python

おすすめ記事

Django Ajaxで非同期通信
Django Ajaxで非同期通信
SEO対策として、セキュリティー対策ソフトでチェック
SEO対策として、セキュリティー対策ソフトでチェック
Django Adminのパスワードを忘れたら? - Python
Django Adminのパスワードを忘れたら? - Python
Cookieの使い方 / JavaScript
Cookieの使い方 / JavaScript
Django テンプレート 使用 #2 Staticファイルの使用
Django テンプレート 使用 #2 Staticファイルの使用
Django チーター#1 - Python
Django チーター#1 - Python
Supponsered

外部サイト ↓プログラムを学んでみたい場合、学習コースなどもおすすめです!

Title : Photo by Steve Johnson on Unsplash

Comments

comments powered by Disqus