Django エラー 『NoReverseMatch at … '…' is not a registered namespace』 対策
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 Ajaxで非同期通信
SEO対策として、セキュリティー対策ソフトでチェック
Django Adminのパスワードを忘れたら? - Python
Cookieの使い方 / JavaScript
Django テンプレート 使用 #2 Staticファイルの使用
Django チーター#1 - Python
Supponsered
外部サイト ↓プログラムを学んでみたい場合、学習コースなどもおすすめです!
Title : Photo by Steve Johnson on Unsplash