@mr_forlife

На сколько хорошая практика импортировать инстанс из модуля в Django?

Решил вынести CRUD модели в сервис.
# service.py
from employee.models import Employee


class EmployeeService:
    _model = Employee

    def add(self, **kwargs) -> Employee:
        return self._model.objects.create(**kwargs)

    def get_all(self):
        return self._model.objects.all()
    
    def get_by_id(self, pk:int) -> Employee:
        return self._model.objects.get(pk=pk)
    
    def delete_by_id(self, pk:int):
        employee = self._model.objects.get(pk=pk)
        return employee.delete()
    

service = EmployeeService()

# view.py
from service import service

На сколько хорошая практика импортировать инстанс из модуля в Django? Или лучше инстанцировать сервис во вьюхе, или вообще в каждой функции обработчике?
  • Вопрос задан
  • 117 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Everything_is_bad
В самом django нет service, поэтому все делают как им удобно, у меня часто это просто набор функций, без объекта. Тут больше про то, что ты хочешь этим добиться, например, в потомках переопределить _model и это почти сразу заработало, то ок. Хотя для этого наверно стоит сделать базовый класс.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы