Ho una domanda su come trattare i modelli m2m/through e la loro presentazione nel framework django rest. Facciamo un esempio classico:Includi un intermediario (tramite il modello) nelle risposte in Django Rest Framework
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
Quando geting un'istanza di Stati, Ricevo tutti i campi del membro e anche i suoi gruppi, tuttavia ottengo solo i dettagli dei gruppi, senza dettagli aggiuntivi t cappello proviene dal modello Membership.
In altre parole ho aspetto per ricevere:
{
'id' : 2,
'name' : 'some member',
'groups' : [
{
'id' : 55,
'name' : 'group 1'
'join_date' : 34151564
},
{
'id' : 56,
'name' : 'group 2'
'join_date' : 11200299
}
]
}
Annotare il join_date.
Ho provato oh così tante soluzioni, tra cui ovviamente Django Rest-Framework official page about it e nessuno sembra dare una risposta adeguata a questo proposito - cosa devo fare per includere questi campi aggiuntivi? L'ho trovato più diretto con django-tastypie ma ho avuto altri problemi e preferisco il framework di riposo.
Sarebbe http://eugene-yeo.me/2012/12/4/django-tastypie-manytomany-through-part-2/ help? – karthikr
Questo è per torta gustosa, sto lavorando con Django Rest Framework. – mllm