Django - Невозможно написать взаимосвязанный уровень сервиса
В течение нескольких дней я пытаюсь реализовать сервисный слой в Django, чтобы отделить бизнес-логику от моделей и представлений. Я делаю это следующим образом (в качестве примера):
from api.services.BoatService import BoatService
class ApplicationService:boatService = BoatService()
def find(self, application_id, user_id):
#some business logic for search an object, raise custom exception, etc
application = self.applicationService.find(args)
В другом файле:
from api.services.ApplicationService import ApplicationService
class BoatService:
applicationService = ApplicationService()
def find(self, boat_id, user_id):
#some business logic for search an object, raise custom exception, etc
boat = self.applicationService.find(args)
Проблема возникает, когда я пытаюсь использовать методы из ApplicationService в BoatService, потому что я получил ожидаемый ImportError: cannot import name 'BoatService' from partially initialized module 'api.services.BoatService' (скорее всего, из-за циклического импорта).
Мне нужно реализовать внедрение зависимостей как в Spring Boot (аннотируя с @service/@autowired) или что-нибудь, что позволит мне использовать методы из обоих сервисов взаимосвязано (как другой обычный сервис в другом фреймворке)