Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python IDE建议用@staticmethod修饰Django CBV方法_Python_Django_Static Methods_Django Class Based Views - Fatal编程技术网

Python IDE建议用@staticmethod修饰Django CBV方法

Python IDE建议用@staticmethod修饰Django CBV方法,python,django,static-methods,django-class-based-views,Python,Django,Static Methods,Django Class Based Views,这个建议似乎有道理,因为方法中没有使用self,但现在我很好奇: 这是CBV的疏忽吗?用户应该手动装饰每个@staticmethod Django中已经有一些代码自动使所有CBV方法保持静态了吗 这是我所说内容的截图。它使用的是DRF的CBV,但这和我使用香草Django CBV时的建议是一样的 不,你不应该这样做。这些都是实例方法,需要保持这种状态 尽管您没有使用任何实例值或调用任何实例方法,但这似乎有点奇怪。通常,您会通过self.kwargs引用URL参数,并调用其他方法,如self.

这个建议似乎有道理,因为方法中没有使用
self
,但现在我很好奇:

  • 这是CBV的疏忽吗?用户应该手动装饰每个
    @staticmethod

  • Django中已经有一些代码自动使所有CBV方法保持静态了吗

这是我所说内容的截图。它使用的是DRF的CBV,但这和我使用香草Django CBV时的建议是一样的


不,你不应该这样做。这些都是实例方法,需要保持这种状态

尽管您没有使用任何实例值或调用任何实例方法,但这似乎有点奇怪。通常,您会通过
self.kwargs
引用URL参数,并调用其他方法,如
self.get\u context\u data
。如果你不这样做,我想知道你是否真的从使用CBV中获益


(事实上,我通常的建议是,根本不要覆盖
get
post
;这些方法通常会委托给更具体的方法,更易于覆盖。)

我不太确定正确实现的cbv应该是什么样子,而且我甚至不认为使用cbv有任何好处。在找到使用cbv的理由之前,我应该只使用函数视图吗?