@9550668

Как правильно структурировать Model в Django?

Всем здравствуйте в очередной раз.

Почитал документацию по Моделям, все изучил, но остались вопросы. Надеюсь, вы сможете подсказать.

Абстрактная ситуация:
1. Есть Модель с несколькими полями.
2. Мне необходимо написать ряд внутренних функций к модели, чтобы код бы более понятный, боее детально структурирован и основная нагрузка на работу с моделью ложилась не на CWB, а на внутренние функции модели.

Собственно, вопрос:
1. Есть функция внутри модели по выдаче частичной информации(нескольких полей записи).

#к примеру, простая функция внутри модели:
def return_user_age(self, user):
   ...
   return user.age


Как я могу вызвать данную функцию из CWB, не создавая новую переменную модели?
Т.е., в идеальном варианте хотелось бы иметь решение, к примеру, такое:
print(Users.return_user_age(id=3))
где Users - это имя модели из файла models.py, id - id юзера, возраст которого я бы хотел получить.
  • Вопрос задан
  • 59 просмотров
Решения вопроса 2
alternativshik
@alternativshik
Если исходя из варианта в вопросе, то так:
@classmethod
def return_user_age(cls, user_id):
   user = cls.objects.get(id=user_id)
   return user.age


Можно еще написать менеджер для модели и разрулить через него. Можно сделать еще @property и можно просто методы модели, вариант зависит от способов использования этого всего добра в коде.
Ответ написан
@bacon
Да не CBW, и не CWB, а CBV
"Толстые" модели это тоже плохо, в идеале тут нужен еще один слой - сервисов, которого нет в django, где описываются бизнес сценарии. Для новичка достаточно сложно, так что скорее всего, лучше всё такие в CBV это всё пока делать.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Верфь Екатеринбург
от 70 000 до 140 000 ₽
Большая Тройка Москва
от 120 000 до 200 000 ₽
Junto Москва
от 80 000 до 120 000 ₽
23 сент. 2020, в 20:17
100000 руб./за проект
23 сент. 2020, в 20:15
12000 руб./за проект
23 сент. 2020, в 20:14
1000 руб./за проект