如何从同一个基于类的视图方法中的函数返回带有super的基于类的视图方法?

时间:2019-03-22 21:51:08

标签: 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 个答案:

答案 0 :(得分:0)

您必须定义argskwargs,只需要将它们添加到方法参数中,如下所示:

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)