Сериализаторы Django Rest Framework вызывают ошибки при создании сериализаторов для циклически зависимых моделей

У меня есть эти модели в моем приложении

class Social_Data(models.Model):
    sdid = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    youtube = models.CharField(max_length = 400)
    twitter = models.CharField(max_length = 400)
    github = models.CharField(max_length = 400)

class Company(models.Model):
    name = models.CharField(max_length = 100)
    logo = models.FileField(upload_to = "media/")
    summary = models.CharField(max_length = 400, default="")
    advocates = models.ManyToManyField('Advocate', related_name="advocates", default="", blank=True)
    href = models.CharField(max_length = 100,default = "", blank = True, null=True)


class Advocate(models.Model):
    name = models.CharField(max_length = 200)
    profile_pic = models.FileField(upload_to = "media/")
    short_bio = models.CharField(max_length = 300, blank=True)
    long_bio = models.CharField(max_length = 400, null=True, blank=True)
    advocate_years_exp = models.IntegerField(default = 0)
    company = models.ForeignKey(Company, null = True, on_delete=models.SET_NULL)
    links = models.OneToOneField(Social_Data, null = True, on_delete=models.SET_NULL)

и вот мои serializers.py

    from rest_framework import serializers
from .models import *


class SocialDataSerializer(serializers.ModelSerializer):

    class Meta:
        model = Social_Data
        # fields = "__all__"
        exclude = ["sdid"]


class AdvocateSerializer(serializers.ModelSerializer):
    company = CompanySerializer()
    links = SocialDataSerializer()
    class Meta:
        model = Advocate
        fields = "__all__"

class CompanySerializer(serializers.ModelSerializer):
    advocates = AdvocateSerializer(many=True)
    class Meta:
        model = Company
        fields = "__all__"

Как я могу решить проблему с ленивой ссылкой на сторонников в модели компании при сериализации данных в сериализаторах? И пока что мои сериализаторы выдают ошибку "имя Company не определено"

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