IDE рекомендует украшать методы Django CBV с помощью @staticmethod

python django static-methods django-class-based-views

112 просмотра

1 ответ

Рекомендация, кажется, имеет смысл, потому что selfне используется в методе, но теперь мне интересно:

  • это упущение CBV и пользователи должны вручную украшать каждый @staticmethod?

  • уже есть некоторый код в Django, который автоматически делает все методы CBV статичными?

Вот скриншот того, о чем я говорю. Он использует CBV от DRF, но это была та же рекомендация, когда я использовал ванильный Django CBV.

введите описание изображения здесь

Автор: dvtan Источник Размещён: 08.11.2019 11:25

Ответы (1)


1 плюс

Нет, ты не должен этого делать. Это методы экземпляра и должны оставаться таковыми.

Хотя это кажется немного странным, что вы не используете ни одно из значений экземпляра или не вызываете там какие-либо методы экземпляра. Обычно вы ссылаетесь на аргументы URL через self.kwargsи вызываете другие методы, такие как self.get_context_data. Если вы ничего не делаете, мне интересно, действительно ли вы вообще получаете какую-либо выгоду от использования CBV.

(На самом деле моя обычная рекомендация - не переопределять getили postвообще не использовать; те обычно делегируют более конкретные методы, которые более полезны для переопределения.)

Автор: Daniel Roseman Размещён: 20.08.2016 04:00
Вопросы из категории :
32x32