Djangoチュートリアルを見て勉強しています。
class Detail(SingleObjectMixin,FormView): model = Question form_class = VoteForm context_object_name = 'question' template_name = 'polls/detail.html' def get(self, request, *args, **kwargs): self.object = self.get_object() return super().post(request, *args, **kwargs) def post(self, request, *args, **kwargs): self.object = self.get_object() return super().post(request, *args, **kwargs) def get_form_kwargs(self): kwargs = super().get_form_kwargs() kwargs['question'] = self.object return kwargs def form_valid(self, form): form.vote() choice = form.cleaned_data['choice'] messages.success(self.request,'"%s"に投票しました' % choice) return super().form_valid(form) def get_success_url(self): return resolve_url('polls:polls_results',self.kwargs['pk']) detail = Detail.as_view()
というコードが出てきました。
この、get・postで
self.object = self.get_object()
というコードが出てきているのかわかりません。自分ではget_object()を定義していないのでなぜこれが使えるのかわかりません。
get_form_kwargsでも、get_form_kwargs()メソッドを定義した覚えがなく、なぜ使えるのでしょうか?super()を使っているということはあらかじめメソッドがあるということなのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。