Как мне вернуть основанный на классе метод просмотра с помощью super из функции в том же самом методе просмотра на основе класса?

#django

#django

Вопрос:

Возможно ли это вообще?

Я ничего не могу найти или разобраться в этом самостоятельно, так как я новичок, поэтому я обращаюсь к вам, ребята.

Вот пример (не беспокойтесь о варианте использования, я просто хочу знать, возможно ли это и как):

Когда я запускаю этот код, я получаю, что * args не определен. Что не так?

views.py:

 class MyCreateView(CreateView):

   def get(self, request, *args, **kwargs):
      slug = kwargs['slug']
      helper_method(self, slug)

  

helpers.py:

 def helper_method(self, slug):
   if slug == "random":
      return super(self.__class__, self).get(request, *args, **kwargs)
  

Ответ №1:

Вы должны определить args и kwargs , вам просто нужно добавить их к параметрам вашего метода следующим образом:

 def helper_method(self, slug, *args, **kwargs):
   if slug == "random":
      return super(self.__class__, self).get(request, *args, **kwargs)
  
 class MyCreateView(CreateView):

   def get(self, request, *args, **kwargs):
      slug = kwargs['slug']
      helper_method(self, slug, *args, **kwargs)