FlatPageとは?
更新頻度が低い、プライバシー・ポリシーや規約関連のページに使用します。
URLやタイトル、概要をデータベースに保存するので、管理画面で更新できるようになります。
DjangoのCMS、wagtailなどを導入していたら不要かな??
実装
- INSTALLED_APPSを追加
- SITE_IDを追加
- URLconfを追加
- migrate
- htmlの設置
この5ステップだけでOKです。
1. INSTALLED_APPS
sites
とflatpages
を追加
INSTALLED_APPS = [
...
'django.contrib.sites',
'django.contrib.flatpages',
]
2. SITE_ID
管理画面のsiteにexample.com
があると思うの127.0.0.1:8000
に変更しておきます。
127.0.0.1:8000
を変更せず追加にすると「No FlatPage matches the given query」が発生します。
追加したい場合は、SITE_IDを「2」に設定するとエラーは無くなるはずです。
SITE_ID = 1
3. URLconf
以下のようにpathを設定すると、pages/設定したpath
というアドレスになります。
path、タイトル、概要などは管理画面で設定できます。
urlpatterns = [
...
path('pages/', include('django.contrib.flatpages.urls')),
]
4. migrate
migarteを実行すると、django_flatpage
とdjango_flatpage_sites
のテーブルが作成されます。
5. HTMLファイル
初期状態だと、flatpagesはflatpages/default.html
をレンダリングします。
現在使用しているtemplates
フォルダ内にflatpages/default.html
を作成します。
<!DOCTYPE html>
<html>
<head>
<title>{{ flatpage.title }}</title>
</head>
<body>
<h1>{{ flatpage.title }}</h1>
{{ flatpage.content }}
</body>
</html>
これで完了!
細かくhtmlファイルを設定したり、独自のフォームを作成することも可能です。
詳しくは公式ページをどうぞ!