Я создал класс представления, унаследованный от
django.views.generic.CreateView
Все работает нормально, но у меня есть два раза следующую строкукод в двух разных методах класса:
event = get_object_or_404(Event, pk=self.kwargs['pk'])
Я уже пытался установить переменную класса в методе init , но все, что я пробовал, заканчивалось сообщениями об ошибках.
Вот мой класс с двумя лишними строками:
class StaffCreateView(CreateView):
model = Staff
form_class = StaffForm
def get_initial(self):
"""
Returns the initial data to use for forms on this view.
"""
initial = super().get_initial()
event = get_object_or_404(Event, pk=self.kwargs['pk'])
initial['country'] = event.default_country_of_staff
initial['max_number_of_shifts'] = event.default_max_number_of_shifts_per_staff
return initial
def form_valid(self, form):
event = get_object_or_404(Event, pk=self.kwargs['pk'])
form.instance.event = event
return super().form_valid(form)
Может ли кто-нибудь подсказать мне, как это сделать правильно?