J'ai une question sur le traitement des modèles m2m / through et leur présentation dans le framework django rest. Prenons un exemple classique :
models.py :
from django.db import models
class Member(models.Model):
name = models.CharField(max_length = 20)
groups = models.ManyToManyField('Group', through = 'Membership')
class Group(models.Model):
name = models.CharField(max_length = 20)
class Membership(models.Model):
member = models.ForeignKey('Member')
group = models.ForeignKey('Group')
join_date = models.DateTimeField()
serializers.py :
imports...
class MemberSerializer(ModelSerializer):
class Meta:
model = Member
class GroupSerializer(ModelSerializer):
class Meta:
model = Group
views.py :
imports...
class MemberViewSet(ModelViewSet):
queryset = Member.objects.all()
serializer_class = MemberSerializer
class GroupViewSet(ModelViewSet):
queryset = Group.objects.all()
serializer_class = GroupSerializer
Lorsque je récupère une instance de Member, je reçois avec succès tous les champs du membre ainsi que ses groupes, mais je ne reçois que les détails des groupes, sans les détails supplémentaires provenant du modèle Membership.
En d'autres termes, je s'attendre à à recevoir :
{
'id' : 2,
'name' : 'some member',
'groups' : [
{
'id' : 55,
'name' : 'group 1'
'join_date' : 34151564
},
{
'id' : 56,
'name' : 'group 2'
'join_date' : 11200299
}
]
}
Notez le date de la réunion .
J'ai essayé tant de solutions, dont bien sûr Page officielle de Django Rest-Framework à ce sujet et personne ne semble donner une réponse claire et nette à ce sujet - que dois-je faire pour inclure ces champs supplémentaires ? J'ai trouvé cela plus simple avec django-tastypie mais j'ai eu d'autres problèmes et je préfère rest-framework.