質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

1007閲覧

(Django)NoReverseMatchを解決したい

minari766

総合スコア17

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2021/06/14 17:23

編集2021/06/14 17:31

###実現したいこと
記事投稿型Webアプリを開発中に発生した下記エラーを解決したいです。
各種コードを記入したところ、かなりボリュームが出てしまいましたが、ご確認いただけますと幸いです。

###エラー内容
不足等ありましたらお手数ですがご連絡いただけますと幸いです。

NoReverseMatch at / Reverse for 'bazaar' not found. 'bazaar' is not a valid view function or pattern name. Request Method: GET Error during template rendering In template /(ユーザー名)/Documents/Github/disney_side_stories/app/templates/app/base.html, error at line 0 <!--トラックバック(該当部分)--> /(ユーザー名)/Documents/Github/disney_side_stories/app/views.py in get return render(request, 'app/index.html', { …

###コード
view.py

Python

1class IndexView(View): 2 def get(self, request, *args, **kwargs): 3 post_data = Post.objects.filter(public=True).order_by("-id") 4 area = self.kwargs.get('area') 5 category = self.kwargs.get('category') 6 attraction = self.kwargs.get('attraction') 7 post_data = self.category_select(post_data, category, area, attraction) 8 post_data = self.area_select(post_data, category, area, attraction) 9 post_data = self.attraction_select(post_data, category, area, attraction) 10 11 page_obj = self.paginate_queryset(request, post_data, 10) 12 13 for post in post_data: 14 print(type(post.category)) 15 16 return render(request, 'app/index.html', { 17 'post_data': page_obj.object_list, 18 'page_obj': page_obj, 19 'area': area, 20 'attraction': attraction, 21 'category': category, 22 }) 23

index.html
投稿記事には3つのカテゴリ(area、attraction、category)があり、トップ画面に散りばめられたリンクをクリックして投稿記事を絞り込む機能としています。

html

1<header class="masthead"> 2 <div class="container h-auto my-4"> 3 <div class="row h-auto align-items-center"> 4 <div class="col-12 text-center TDL-table"> 5 {% if area == 'bazaar' %} 6 <img src="{% static 'img/WorldBazaar.png' %}" alt="" class="top-pic-bazaar"> 7 {% if category == 'story' %} 8 <a href="{% url 'index' 'bazaar' 'attraction1' 'story' %}">アトラクション1</a> 9            <!--詳細省略(以下、類似コードでも同様に詳細省略)--> 10 {% else %} 11 <a href="{% url 'index' 'bazaar' 'attraction1' 'all' %}">アトラクション1</a> 12 {% endif %} 13 {% elif area == 'adventure' %} 14 <img src="{% static 'img/AdventureLand.png' %}" alt=""> 15 {% if category == 'story' %} 16 <a href="{% url 'index' 'attraction2' 'attraction2' 'story' %}" class="riverline-link">アトラクション2</a> 17 {% else %} 18 <a href="{% url 'index' 'adventure' 'attraction2' 'all' %}" class="riverline-link">アトラクション2</a> 19 {% endif %} 20 {% elif area == 'western' %} 21 <img src="{% static 'img/WesternLand.png' %}" alt=""> 22 {% if category == 'story' %} 23 <a href="{% url 'index' 'western' 'attraction3' 'story' %}">アトラクション3</a> 24 {% else %} 25 <a href="{% url 'index' 'western' 'attraction3' 'all' %}">アトラション3</a> 26 {% endif %} 27 {% elif area == 'critter' %} 28 <img src="{% static 'img/CritterCountry.png' %}" alt=""> 29 {% if category == 'story' %} 30 <a href="{% url 'index' 'critter' 'attraction4' 'story' %}">アトラクション4</a> 31 {% else %} 32 <a href="{% url 'index' 'critter' 'attraction4' 'all' %}" >アトラクション4</a> 33 {% endif %} 34 {% elif area == 'fantasy' %} 35 <img src="{% static 'img/fantasy_top.png' %}" alt=""> 36 {% if category == 'story' %} 37 <a href="{% url 'index' 'fantasy' 'attraction5' 'story' %}">アトラクション5</a> 38 {% else %} 39 <a href="{% url 'index' 'fantasy' 'attraction5' 'all' %}" >アトラクション5</a> 40 {% endif %} 41 {% elif area == 'toon' %} 42 <img src="{% static 'img/ToonTown.png' %}" alt="" class="top-pic-toon"> 43 {% if category == 'story' %} 44 <a href="{% url 'index' 'toon' 'attraction6' 'story' %}">アトラクション6</a> 45 {% else %} 46 <a href="{% url 'index' 'toon' 'attraction6' 'all' %}">アトラクション6</a> 47 {% endif %} 48 {% elif area == 'tomorrow' %} 49 <img src="{% static 'img/TomorrowLand.png' %}" alt="" class="top-pic-toon"> 50 {% if category == 'story' %} 51 <a href="{% url 'index' 'tomorrow' 'attraction7' 'story' %}">アトラクション7</a> 52 {% else %} 53 <a href="{% url 'index' 'tomorrow' 'attraction7' 'all' %}">アトラクション7</a> 54 {% endif %} 55 {% else %} 56 <img src="{% static 'img/TDL_top.png' %}" class="top-pic" alt=""> 57 {% if category == 'story' %} 58 <a href="{% url 'index' 'bazaar' 'story' %}" class="bazaar-link">ワールドバザール</a> 59 <a href="{% url 'index' 'adventure' 'story' %}" class="adventure-link">アドベンチャーランド</a> 60 <a href="{% url 'index' 'western' 'story' %}" class="western-link">ウエスタンランド</a> 61 <a href="{% url 'index' 'critter' 'story' %}" class="critter-link">クリッターカントリー</a> 62 <a href="{% url 'index' 'fantasy' 'story' %}" class="fantasy-link">ファンタジーランド</a> 63 <a href="{% url 'index' 'toon' 'story' %}" class="toon-link">トゥーンタウン</a> 64 <a href="{% url 'index' 'tomorrow' 'story' %}" class="tomorrow-link">トゥモローランド</a> 65 {% elif category == 'mickey' %} 66 <!--上記'story'を'mickey'に変えたコード--> 67 {% elif category == 'trivia' %} 68 <!--上記'story'を'trivia'に変えたコード--> 69 {% elif category == 'other' %} 70 <!--上記'story'を'other'に変えたコード--> 71 {% elif category == 'all' %} 72 <!--上記'story'を'all'に変えたコード--> 73 {% else %} 74 <a href="{% url 'bazaar' 'index' %}">ワールドバザール</a> 75 <a href="{% url 'adventure' 'index' %}">アドベンチャーランド</a> 76 <a href="{% url 'western' 'index' %}">ウエスタンランド</a> 77 <a href="{% url 'critter' 'index' %}">クリッターカントリー</a> 78 <a href="{% url 'fantasy' 'index' %}">ファンタジーランド</a> 79 <a href="{% url 'toon' 'index' %}">トゥーンタウン</a> 80 <a href="{% url 'tomorrow' 'index' %}">トゥモローランド</a> 81 {% endif %} 82 {% endif %} 83 </div> 84 </div> 85 </div> 86</header>

urls.py

Python

1urlpatterns = [ 2 path('', views.IndexView.as_view(), name='index'), 3 path('area/<str:area>/', views.IndexView.as_view(), name='index'), 4 path('area/<str:area>/<str:category>/', views.IndexView.as_view(), name='index'), 5views.IndexView.as_view(), name='index'), 6 path('area/<str:area>/<str:attraction>/<str:category>/', views.IndexView.as_view(), name='index'), 7 path('category/<str:category>/', views.CategoryNameView.as_view(), name='category_name'), 8]

###試したこと
index.htmlのリンク(<a href="{% url 'index' 'area' 'attraction' 'category' %}"></a>)のattractionとcategoryの順番を最初入れ替えていたのですが、その時はNoReverseMatchエラーが出ませんでした。
一度最初の順番に直したところ、やはりエラーが出ないので、タイプミスではないと考えます。
ただ、諸事情によりどうしても現在の'attraction' 'category'の順にしたく、アドバイスいただけますと幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

index.htmlの以下の部分にて、第1引数と第2引数を入れ替えたところ解決しました。
お騒がせしました。

誤: <a href="{% url 'bazaar' 'index' %}">ワールドバザール</a>
正: <a href="{% url 'index' 'bazaar' %}">ワールドバザール</a>

投稿2021/06/14 17:33

minari766

総合スコア17

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問