Мой models.py выглядит следующим образом:
class Group(models.Model):
name = models.CharField(max_length=50, unique=True)
class Policy(models.Model):
name = models.CharField(max_length=50, unique=True)
source_group = models.ForeignKey(Group, related_name='source_group')
destination_group = models.ForeignKey(Group, related_name='destination_group')
Поскольку у меня есть два внешних ключа, указывающих на одну и ту же модель, я использую связанное имя, чтобы избежать конфликтов.
Сейчас, когда я пытаюсь создать сериализатор для групп, чтобы вывести список всех политик, связанных с ним, я делаю следующее:
class PolicySerializer(serializers.ModelSerializers):
class Meta:
model = Policy
fields = "__all__"
class GroupSerializer(serializers.ModelSerializer):
policy = PolicySnippetSerializer(source ='source_group', many=True)
class Meta:
model = Group
fields = ['id', 'name', 'policy']
Однако, это даст мне только политики для source_group. Как я могу получитьвсе группы, связанные с группой, источником и местом назначения?