class InvestigationCreateView(CreateView):
form_class = InvestigationForm
template_name = 'hse/investigation/investigation_create.html'
success_url = reverse_lazy('hse-incidents')
def get_context_data(self, **kwargs):
context = super(InvestigationCreateView, self).get_context_data(**kwargs)
id = self.kwargs['pk']
incident = Incident.objects.get(id=id)
context['incident'] = incident
return context
def form_valid(self, form):
self.object = form.save(commit=False)
id = self.kwargs['pk']
incident = Incident.objects.get(id=id)
self.object.incident = incident
self.object.save()
return HttpResponseRedirect(self.get_success_url())
上記のコードでは、ステートメントid = self.kwargs['pk']およびインシデント = Incident.objects.get(id=id)がget_context_data( ) メソッドとform_valid()メソッドの両方で繰り返されています。
Pythonでこのような繰り返しを書くのを避けるにはどうすればよいですか。
同じクラスに別のメソッドを作成してみましたが、これは両方のメソッドで呼び出されますが、うまくいきません。