Hello!
I would like to have structure of schemas separated by modules:
βββ serializers
βΒ Β βββ __init__.py
βΒ Β βββ analytic.py
βΒ Β βββ portfolio.py
βΒ Β βββ user.py
β βββ ....
Almost every Schema class use each other in nested fields. I can't solve circular imports issue with my structure. Is there a way to solve my problem or I must keep all classes in one module?
thank you!
@deckar01 I've read documentation, this way doesn't work with my code structure!
I will show several examples
Number 1:
user.py
from serializers.base import BaseSerializer
from serializers.portfolio import PortfolioSerializer
class UserBaseSerializer(BaseSerializer):
portfolios = fields.Nested(PortfolioSerializer, many=True, only=('id', 'type', 'balance'))
portfolio.py
from serializers.base import BaseSerializer
from serializers.user import UserBaseSerializer
class PortfolioSerializer(BaseSerializer):
user = fields.Nested(UserBaseSerializer, only=('id', 'username', 'avatar_url'))
type = EnumField(PortfolioTypeEnum)
balance = fields.Decimal(as_string=True)
I got import Error
Number 2
Edit portfolio.py
from serializers.base import BaseSerializer
class PortfolioSerializer(BaseSerializer):
user = fields.Nested('serializers.portfolio.UserBaseSerializer', only=('id', 'username', 'avatar_url'))
type = EnumField(PortfolioTypeEnum)
balance = fields.Decimal(as_string=True)
I got Error
Number 3
user.py
from serializers.base import BaseSerializer
from serializers.portfolio import PortfolioSerializer
class UserBaseSerializer(BaseSerializer):
portfolios = fields.Nested('PortfolioSerializer', many=True, only=('id', 'type', 'balance'))
portfolio.py
from serializers.base import BaseSerializer
from serializers.user import UserBaseSerializer
class PortfolioSerializer(BaseSerializer):
user = fields.Nested('UserBaseSerializer', only=('id', 'username', 'avatar_url'))
type = EnumField(PortfolioTypeEnum)
balance = fields.Decimal(as_string=True)
Again Error. What i'm doing wrong?