Django циклический импорт вызывает AttributeError: модуль 'x' не имеет атрибута 'x' - PullRequest
0 голосов
/ 22 февраля 2020

Я пытаюсь импортировать два сериализатора, как показано ниже:

# project/accounts/serializers/user.py
from rest_framework import serializers


class UserSerializer(serializers.ModelSerializer):
    team = ...  # I need TeamSerializer here

# -----------------------------------

# project/teams/serializers/team.py
from rest_framework import serializers


class TeamSerializer(serializers.ModelSerializer):
    leader = ...  # I need UserSerializer here

Все сериализаторы в каждом приложении находятся в папке serializers, и папка содержит файл инициализации. Внутри файлов инициализации я импортировал Serializer, как показано ниже:

# project/teams/serializers/__init__.py
from .team import TeamSerializer

# project/accounts/serializers/__init__.py
from .user import UserSerializer

Я уже пробовал много способов, таких как import teams.serializers и звоню teams.serializers.TeamSerializers() вместо from teams.serializers import TeamSerializer. Это работает только тогда, когда оно не круглое, однако они нужны друг другу. Когда я импортирую их в оба файла, возникает ошибка, подобная приведенной ниже:

AttributeError: module 'accounts' has no attribute 'serializers'

После того как я закомментировал один из них, ошибка исчезла.

Есть ли чистый способ сделать который? Заранее спасибо.

...