記事ページごとにurls.pyを設定するの面倒なんだけど
Djangoでは、アプリケーション内で記事ページごとにurls.pyを設定するのが一般的ですが、もし簡略化したい場合、以下のようにしても良いです。一つのurls.pyに複数のビューをまとめることができます。
-
urls.pyの設定:
Djangoアプリケーション内のurls.pyファイルに、記事ページへのパスを追加します。python
# toolsアプリケーション内のurls.py from django.urls import path from .views import ConversionCharacterCodeView, ArticleView app_name = 'tools' urlpatterns = [ path('conversion_character_code/', ConversionCharacterCodeView.as_view(), name='conversion_character_code'), path('article/', ArticleView.as_view(), name='article'), # 他のパスについても同様に追加 ]ここで、
ConversionCharacterCodeViewとArticleViewはそれぞれのビュークラスです。 -
ビューの作成:
views.pyファイルにArticleViewを作成します。他のビューも同じファイルに追加できます。python
# toolsアプリケーション内のviews.py from django.views.generic import TemplateView class ConversionCharacterCodeView(TemplateView): template_name = 'tools/conversion_character_code.html' class ArticleView(TemplateView): template_name = 'tools/article.html'これで、
ConversionCharacterCodeViewとArticleViewがviews.pyに共存しています。 -
テンプレートの作成:
templates/toolsディレクトリにconversion_character_code.htmlとarticle.htmlを作成します。html
<!-- tools/templates/tools/conversion_character_code.html --> {% extends "tools/base.html" %} {% block title %}CSV文字コード変換{% endblock %} {% block content %} <h2>CSV文字コード変換</h2> <!-- ページの内容を記述 --> {% endblock %}html
<!-- tools/templates/tools/article.html --> {% extends "tools/base.html" %} {% block title %}記事ページ{% endblock %} {% block content %} <h2>記事ページ</h2> <!-- 記事の内容を記述 --> {% endblock %} -
リンクを作成:
他のページから記事ページへのリンクを作成します。html
<!-- conversion_character_code.html や他のテンプレート内 --> <a href="{% url 'tools:article' %}">記事ページへ</a>同じく、
urlテンプレートタグを使用して、articleという名前のパスに対応するURLを生成しています。
このようにして、複数のビューを一つのurls.pyにまとめ、記事ページごとにviews.pyとtemplatesディレクトリ内で管理できます。

ディスカッション
コメント一覧
まだ、コメントがありません