Django
で Generic View
を使う機会があったので、使い方をまとめました。
Generic View
を利用することでコーディング量を大幅に削減することができます。
バージョン情報
Python
と Django
のバージョンは下記の通りです。
- Python : 3.6.2
- Django : 2.0.7
下準備
Generic View
を使うアプリを作成していきます。
これを読んだだけじゃアプリの作成方法がわからない場合は、下記の記事も参考にしてもらえればと思います。
[Django] Web アプリケーションを構築する手順まとめ
Python の Web アプリケーションフレームワークである「 Django 」を利用して、アプリを作成する手順を書い...
プロジェクトを作成します。
$ django-admin startproject generic_view
Generic View
を使うアプリケーションを作成します。
$ cd generic_view
$ python manage.py startapp sample
マイグレートします。
$ python manage.py migrate
settings.py
を編集します。
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'sample.apps.SampleConfig',
]
Generic View
を利用して操作したいモデルを sample
アプリケーションに追加します。
# models.py
from django.db import models
class Sample(models.Model):
foo = models.CharField(max_length=100)
bar = models.CharField(max_length=100)
makemigrations
して migrate
します。
$ python manage.py makemigrations
$ python manage.py migrate
Generic View
で利用する forms.py
を作成します。
from django import forms
from .models import Sample
class SampleForm(forms.ModelForm):
class Meta:
model = Sample
fields = ['foo', 'bar']
これで Generic View
を使うための準備が出来ました。
Generic View を使う
今回は下記の Generic View
を使っていきたいと思います。
- ListView
- CreateView
- UpdateView
- DeleteView
これで CRUD
の操作に対応できるようになります。
今回は主に views.py
部分の説明をおこなっていきたいと思います。
ListView
class SampleListView(ListView):
model = Sample
template_name = 'sample_list.html'
CreateView
class SampleCreateView(CreateView):
form_class = SampleForm
template_name = 'create.html'
UpdateView
class SampleUpdateView(UpdateView):
model = Sample
form_class = SampleForm
template_name = 'update.html'
DeleteView
class SampleDeleteView(DeleteView):
model = Sample
最後に
この記述だけで最低限の CRUD
を実現することが出来ます。 Generic View
を利用することで劇的にコード量を削減できますので、積極的に活用していきたいと思います。
コメント