【问题标题】:IDE recommends to decorate Django CBV methods with @staticmethodIDE 建议使用 @staticmethod 装饰 Django CBV 方法
【发布时间】:2016-08-20 14:27:02
【问题描述】:

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

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

  • Django 中是否已经有一些代码可以自动使所有 CBV 方法静态化?

这是我正在谈论的内容的屏幕截图。它使用的是 DRF 的 CBV,但是当我使用 vanilla Django CBV 时,它是相同的建议。

【问题讨论】:

    标签: python django static-methods django-class-based-views


    【解决方案1】:

    不,你不应该这样做。这些是实例方法,需要保持不变。

    虽然您没有使用任何实例值或在那里调用任何实例方法,但这似乎有点奇怪。通常您会通过self.kwargs 引用URL 参数,并调用其他方法,例如self.get_context_data。如果您不这样做,我想知道您是否真的从使用 CBV 中获得了任何好处。

    (事实上,我通常的建议是您根本不要覆盖 getpost;它们通常会委托给更具体的方法,这些方法对覆盖更有用。)

    【讨论】:

    • 我不太确定正确实施的 cbv 应该是什么样子,而且我什至看不到使用 cbv 的任何优势。我是否应该只使用函数视图,直到找到使用 cbv 的理由?
    猜你喜欢
    • 2015-01-03
    • 2016-01-07
    • 1970-01-01
    • 2016-03-01
    • 2015-03-25
    • 1970-01-01
    • 2013-05-12
    • 2020-10-21
    • 2021-12-20
    相关资源
    最近更新 更多