CreateView 使い方メモ
上記で分類したようにCreateViewは、ListViewやDetailViewと違いデータベースに情報を入力するタイプのものだ。
そういうわけで気になったところをメモしておく。
まずListViewとDetailviewとCreateViewの相違点はどこにあるか?
両者の関係はL、DをCが含む形になっている。だからL、Dと同じように書いてみればいい。その後に追加して必要な項目を気にすれば良い。
一応下に参考になるものをメモしておく。
urls.py
from django.views.generic import CreateView
path('create',HogeCreateView.as_view(),name="create")
views.py
from django.urls import reverse_lazy
class HogeCreateView(CreateView):
model = Hoge
fields = ["contents"]
succes_url = reverse_lazy("index")
hoge_forms.html
基本的にはhtmlのformと同じ書き方をして、そこにdjango特有の書き方をすればオッケイ。
基本は
<form method="post">内容<button>送信</button></form>
Django仕様にすると
<form method="post">{% csrf_token %} 内容{{ form }}<button>送信</button></form>
注意書き
createviewを使うときはviews.pyにてfieldsが必要になる。なぜならcreateviewのページにふさわしくない情報を入力されたら困るし、攻撃の原因になりうるかららしい。
参考情報
この内容はCreateViewについてだが、UpdateViewについても同じ使い方といって問題ない。