前提・実現したいこと
python3,Djangoを利用してWEBシステムを作っています。
DetailViewが呼ばれた時にオリジナルの関数を動かすようにしたいのですが、うまくいきません。
例えば、
python3
1class DetailView(LoginRequiredMixin, generic.DetailView): 2 model = sampleDB 3 template_name = 'detail.html' 4 5 def original(self): 6 data = 'Hello' 7 return data
としている場合に、'detail.html'へ遷移した時に、関数を動かしたいです。
試したこと
試しに、'detail.html'へ遷移した時に、コンソールに文字列が表示されるように、コードを書いていますがどちらも表示されません。
①関数使用
python3
1class DetailView(LoginRequiredMixin, generic.DetailView): 2 model = DbVegetableInfo 3 template_name = 'detail.html' 4 5 def test_print(self): 6 print('プリントテスト')
printメソッドのみ
python3
1class DetailView(LoginRequiredMixin, generic.DetailView): 2 model = DbVegetableInfo 3 template_name = 'detail.html' 4 5 print('プリントテスト')
DetailViewを使用する場合は、利用できる関数の名前はあらかじめ決まっているのが、ルールなのでしょうか?
オリジナルの関数を利用したい時は、どのようにすれば良いのでしょうか?
追記
CreateViewで、print('プリントテスト')のコードを書き、登録フォームののサブミットを押すと、コンソールに'プリントテスト'と表示されます
python3
1class CreateView(LoginRequiredMixin, generic.CreateView): 2 model = sampleDb 3 template_name = 'resister.html' 4 form_class = ResisterForm 5 success_url = reverse_lazy('main:home') 6 7 def form_valid(self, form): 8 9 print('プリントテスト') 10 11 resister_vegetable = form.save(commit=False) 12 resister_vegetable.user = self.request.user 13 resister_vegetable.save() 14 messages.success(self.request, '登録しました') 15 return super().form_valid(form) 16 17 18 def form_invalid(self, form): 19 messages.error(self.request, "失敗しました。") 20 return super().form_invalid(form)
補足情報(FW/ツールのバージョンなど)
●開発環境
Python: 3.7.5
Django: 2.2.2
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/24 13:14
2020/03/24 13:31