ちゃんとバリデーションを出来ているか確認する前に
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を修正する所から始める