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) или что-нибудь, что позволит мне использовать методы из обоих сервисов взаимосвязано (как другой обычный сервис в другом фреймворке)

Вернуться на верх