ryotankの備考録日記

趣味の電子工作についての備考録などなど

基板設計記録WEBアプリその21

views.py:画面表示について

from django.shortcuts import render
from django.urls import reverse_lazy
from django.urls import reverse
from django.http import HttpResponse
from django.views.generic import (ListView,
                                  DetailView,
                                  CreateView,
                                  DeleteView,
                                  UpdateView)
from . import models

#一覧画面
class Pdr_dataList(ListView):
    #Pdr_dataテーブル連携
    model = models.Pdr_data
    #レコード情報をテンプレートに渡すオブジェクト
    context_object_name = "Pdr_data_list"
    #テンプレートファイル連携
    template_name = "PDR_data_form_list.html"

#詳細画面
class Pdr_dataDetail(DetailView):
    #Pdr_dataテーブル連携
    model = models.Pdr_data
    #レコード情報をテンプレートに渡すオブジェクト
    context_object_name = "Pdr_data_detail"
    #テンプレートファイル連携
    template_name = "PDR_data_detail.html"

#Create画面
class Pdr_dataCreateView(CreateView):
    #Pdr_dataテーブル連携
    model = models.Pdr_data
    #入力項目定義
    fields = ("name","industory","location")
    #テンプレートファイル連携
    template_name = "PDR_data_form.html"
    #更新後のリダイレクト先
    def get_success_url(self):
        return reverse('pdr_app:detail', kwargs={'pk': self.object.pk})

#Create画面2
class Pdr_dataCreateView2(CreateView):
    #Pdr_dataテーブル連携
    model = models.Pdr_data
    #入力項目定義
    fields = ("name","age","company")
    #テンプレートファイル連携
    template_name = "PDR_data2_form.html"
    #作成後のリダイレクト先
    success_url = reverse_lazy("pdr_app:list")

#Create画面3
class Pdr_dataCreateView3(CreateView):
    #Pdr_dataテーブル連携
    model = models.Pdr_data
    #入力項目定義
    fields = ("name","age","company")
    #テンプレートファイル連携
    template_name = "PDR_data3_form.html"
    #作成後のリダイレクト先
    success_url = reverse_lazy("pdr_app:list")

#Upadate画面
class Pdr_dataUpdateView(UpdateView):
    #入力項目定義
    fields = ("board_name","industory","location")
    #Pdr_dataテーブル連携
    model = models.Pdr_data
    #テンプレートファイル連携
    template_name = "PDR_data_form.html"
    #更新後のリダイレクト先
    def get_success_url(self):
        return reverse('pdr_app:detail', kwargs={'pk': self.object.pk})

#更新画面
class Pdr_dataUpdateView(UpdateView):
    #入力項目定義
    fields = ("name","age")
    #Pdr_dataテーブル連携
    model = models.Pdr_data
    #テンプレートファイル連携
    template_name = "PDR_data_form.html"
    #更新後のリダイレクト先
    success_url = reverse_lazy("pdr_app:list")

#削除画面
class Pdr_dataDeleteView(DeleteView):
    #Pdr_dataテーブル連携
    model = models.Pdr_data
    #テンプレートファイル連携
    template_name = "PDR_data_delete.html"
    #削除後のリダイレクト先
    success_url = reverse_lazy("pdr_app:list")

#create_done関数
#データ登録が完了した際に呼び出される関数で、最終的に
#データ登録完了画面(create_done.html)が呼び出される
def create_done(request, **kwargs):
    contents = {}
    for key, val in kwargs.items():
        contents[key] = val

    return render(request, 'PDR_data_create_done.html',{
        'contents': contents,
    })

pointは、クラスベースビューを利用している事
ListView、DetailView、CreateView、DeleteView、UpadateViewクラスを用いるために、
下記コードを記述して親クラスを呼び出しています

from django.views.generic import (ListView,
                                  DetailView,
                                  CreateView,
                                  DeleteView,
                                  UpdateView)