Ответ 1
Как вы называете этот метод? Вы определили метод экземпляра, который может быть вызван только экземпляром класса, а не самим классом. Другими словами, если у вас есть экземпляр model
, называемый mymodelinstance
, вы можете сделать mymodelinstance.my_custom_method()
.
Если вы хотите вызвать его в классе, вам необходимо определить метод class. Вы можете сделать это с помощью декоратора @classmethod
в вашем методе. Обратите внимание, что по соглашению первый параметр для метода класса cls
, а не self
. Подробнее о classmethod см. документацию Python.
Однако, если вы действительно хотите сделать это, добавьте метод, который выполняет операцию уровня на уровне запроса, например objects.filter()
или objects.get()
, тогда лучше всего определить пользовательский диспетчер и добавить туда свой метод. Тогда вы сможете сделать model.objects.my_custom_method()
. Опять же, смотрите документацию Django в Менеджерах.