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

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

Войти через центр авторизации
Похожие вопросы
SpectrumData Екатеринбург
от 150 000 до 200 000 ₽
Гринатом Москва
от 150 000 ₽
Greenway Global Новосибирск
от 150 000 ₽