I have 2 models connected via M2M model:
class Person(models.Model):
name = models.CharField(max_length=30)
class Group(models.Model):
name = models.CharField(max_length=100)
members = models.ManyToManyField(Person, through='GroupPerson', related_name='groups')
class GroupPerson(models.Model):
group = models.ForeignKey(Group, on_delete=models.CASCADE)
person = models.ForeignKey(Person, on_delete=models.CASCADE)
rank = models.CharField(max_length=100', default='New')
and serializers
class GroupPersonSerializer(serializers.ModelSerializer):
class Meta:
model = GroupPerson
fields = '__all__'
class GroupSerializer(serializers.ModelSerializer):
members = serializers.PrimaryKeyRelatedField(many=True, queryset=Person.objects.all())
class Meta:
model = Group
fields = '__all__'
class PersonSerializer(serializers.ModelSerializer):
groups = serializers.PrimaryKeyRelatedField(many=True, queryset=Group.objects.all())
class Meta:
model = Person
fields = '__all__'
And API go get a group returns
[
{
"name": "...",
"members": [ 1, ... ]
}
]
How do I get a response something like following:
[
{
"name": "...",
"members": [
{
"group_id": 1,
"person_id": 1,
"rank": "New"
},
...
]
}
]
I.e., I want to GET/POST/PATCH all fields of the through relation