見出し画像

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():
       # 検索条件から抽出された生徒を取得
 :
 :
 :




この記事が気に入ったらサポートをしてみませんか?