ryotankの備考録日記

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

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

ちゃんとバリデーションを出来ているか確認する前に

webページ表示設定を行うviews.pyの変更をする

views.pyの役割は、
ユーザーからhttpリクエストを受けてから
それに応じたHTML形式のレスポンスを返す事


改めてPDRに関する画面をまとめると

  • PDR_data_list.htmlが、PDR一覧画面のデザインで、ListViewと連携する
  • PDR_data_detail.htmlが、PDR詳細画面のデザインで、DetailViewと連携する
  • PDR_data_update.htmlが、PDR更新画面のデザインで、UpdateViewと連携する
  • PDR_data_delete.htmlが、PDR削除画面のデザインで、DeleteViewと連携する
  • PDR_data_form.htmlが、PDR登録画面のデザインで、CreateViewと連携する
  • PDR_data_form2.htmlが、PDR登録画面のデザインで、CreateViewと連携する
  • PDR_data_form3.htmlが、PDR登録画面のデザインで、CreateViewと連携する
  • PDR_data_done.htmlが、PDR登録完了のデザイン連携しない
  • PDR_data_contest_check.htmlが、PDR登録内容確認のデザイン 連携しない

になっているが、

7-13日時点のviews.pyの中身(一部抜粋して載せる)

#一覧画面
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 = ("board_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")

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

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

def image_index(request):
    params = {
        'title':'画像のアップロード',
        'upload_form':UploadForm(),
        'id': None,
    }

    if (request.method == 'POST'):
        form = UploadForm(request.POST, request.FILES)
        if form.is_valid():
            upload_image = form.save()

            params["id"] = upload_image.id

    return render(request, 'pdr_app/PDR_data_form3.html', params)

紙のノートにまとめている時に気づいた・・・

目標とviewの中身がチグハグでHTML名もバラバラになっている

次回は、ちゃんと合うように
views.pyを修正する所から始める