Includi l’intermediario (tramite il modello) nelle risposte in Django Rest Framework

| | |

Ho una domanda sulla gestione dei modelli m2m / through e sulla loro presentazione in django rest framework. Facciamo un classico esempio:

models.py:

from django.db import models class Member(models.Model): name = models.CharField(max_length = 20) groups = models.ManyToManyField("Group", through = "Membership") classe Group(models.Model): nome = models.CharField(max_length = 20) class Membership(models.Model): membro = models.ForeignKey ("Membro") gruppo = models.ForeignKey ("Gruppo") join_date = models.DateTimeField() 

serializers.py:

importa.. .class MemberSerializer(ModelSerializer): classe Meta: modello = Membro classe GroupSerializer(ModelSerializer): classe Meta: modello = Gruppo 

views.py:

 imports... class MemberViewSet(ModelViewSet): queryset = Member.objects.all() serializer_class = MemberSerializer classe GroupViewSet(ModelViewSet): queryset = Group.objects.all() serializer_class = GroupSerializer 

Quando ottengo un'istanza di membro, ricevo con successo tutti i campi del membro e anche il suo gro ups - tuttavia ottengo solo i dettagli dei gruppi", senza ulteriori dettagli che derivano dal modello di appartenenza.

In altre parole, mi aspetto di ricevere:

 { "id" : 2, "name" : "some member", "groups" : [ { "id" : 55, "name" : "group 1" "join_date" : 34151564 }, { "id" : 56, "name" : "group 2" "join_date" : 11200299 } ] } 

Nota la join_date.

Ho provato tante soluzioni, incluso ovviamente Pagina ufficiale di Django Rest-Framework a riguardo e nessuno sembra dare una risposta chiara e adeguata al riguardo - cosa devo fare per includere questi campi extra? L'ho trovato più semplice con django-tastypie, ma ho avuto altri problemi e preferisco il rest-framework.