前提・実現したいこと
urlのキーワードを使ってテンプレートで遷移先を指定したい。
自分なりに調べてみたのですが、解決できなかったので教えていただければ幸いです。
urls.pyのstr:name_enで受け取ったキーワードでfilterをかけて、その一覧を表示するリンクを作りたいです。
templateの<a>タグに{%%}の記法を使って試してみましたが、下記のエラーによりうまくいきませんでした。
発生している問題・エラーメッセージ
NoReverseMatch at /category_index/Trip
Reverse for 'category_index' with no arguments not found. 1 pattern(s) tried: ['category_index/(?P<name_en>[^/]+)$']
class CategoryIndex(ListView): template_name = 'vlogapp/index_list.html' paginate_by = 2 def get_queryset(self, **kwargs): queryset = PostModel.objects.filter(category__name_en = self.kwargs['name_en']) return queryset
path('category_index/<str:name_en>', CategoryIndex.as_view(), name='category_index'),
<ul class="navbar-nav me-auto mb-2 mb-lg-0"> <li class="nav-item active"> <a class="nav-link" aria-current="page" href="{% url 'paging' %}">Home</a> </li> <li class="nav-item"> <a class="nav-link" href="">Programing</a> </li> <li class="nav-item"> <a class="nav-link" href="{% url 'category_index' %}">Clothes</a> </li> <li class="nav-item"> <a class="nav-link" href="">Trip</a>
試したこと1
試しにclassbasedViewで作った以下のView
class List(ListView): model = Category ordering = ['-created_at'] paginate_by = 2 template_name = 'vlogapp/list.html'
を{% url ' viewの名前' %}をtemplateに貼り付けたところ問題なく機能した。
###試したこと2
直接、http://127.0.0.1:8000/category_index/Trip
http://127.0.0.1:8000/category_index/Clothesの様にリクエストを送ると、
意図したページ(categoryごとの一覧ページ)が表示されるのでデータの取得には問題ない様に思います。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/03 09:30
2021/07/03 12:29
2021/07/04 04:42
2021/07/04 05:36
2021/07/04 09:20