Djangoで個人的にハマった事。その5
個人的な備忘録です^^
最初の方にハマった事なので今は大丈夫だけど、恐らく少し期間をおくと忘れると思うのでメモっておこうかと♩
設定したURLにアクセスするとPage not found (404)が発生した
エラー内容は、「Using the URLconf defined in kanri.urls, Django tried these URL patterns, in this order:
The current path, card, didn't match any of these.」
理由はプロジェクト用のurls.pyに設定していなかったから。
<!-- menu.html -->
:
:
<div class="navbar-menu">
<nav>
<ul>
<li><a href="/index">メイン</a></li>
<li><a href="/xxxxKanri/xxxx">XXXX</a></li>
<li><a href="/yyyyList/yyyy">YYYY一覧</a></li>
<li><a href="/zzzzList/zzzz">ZZZZ一覧</a></li>
<li><a href="/card">カード</a></li> <!-- 作ってない -->
</ul>
</nav>
</div>
:
:
# urls.py
:
:
urlpatterns = [
path('admin/', admin.site.urls),
path('xxxxKanri/',include('xxxxKanri.urls')),
path('yyyyList/',include('yyyyList.urls')),
path('zzzzList/',include('zzzzKanri.urls')),
# cardの設定はしていないから
]
:
:
NoReverseMatch at /xxxxKanri/search/
'xxxxk' is not a registered namespace
アプリ用のurls.pyに設定しているapp_nameがxxxxKanriにしている。
なのでxxxxKanri:searchにすべきところを設定されていないxxxxkを設定していたため。
<!-- テンプレート用.html -->
:
:
<form method="post" action="{% url 'xxxxk:search' %}">
:
:
# アプリ用のurls.py
:
:
app_name = 'xxxxKanri'
:
:
NoReverseMatch at /xxxxKanri/xxxx/
Reverse for 'search' not found. 'search' is not a valid view function or pattern name.
アプリ用のurls.pyでsearchを設定しているが、views.pyにsearchファンクションを作っていなかったから。
<!-- テンプレート用.html -->
:
:
<form method="post" action="{% url 'xxxxKanri:search' %}">
:
:
# アプリ用のurls.py
app_name = 'xxxxKanri'
urlpatterns = [
path('', views.index, name='index'),
# 生徒管理
path('xxxx/', views.index, name=''), # 初期表示
path('xxxx/search/', views.search, name='search'), # 検索
# アプリ用のviews.py
# 検索
@csrf_protect
def search(request):
searchForm = SearchForm(request.POST or None)
# バリデート結果がOKなら生徒を抽出する
if request.method == "POST" and searchForm.is_valid():
# 検索条件から抽出された生徒を取得
:
:
:
この記事が気に入ったらサポートをしてみませんか?