关于如何处理M2M/Through模型以及它们在Django睡觉框架中的表示,我有一个问题.让我们举一个classic 的例子:
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()
序列化程序.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
在获取Member实例时,我成功地接收了该成员的所有字段及其组,但是我只获取了组的详细信息,没有来自成员模型的额外详细信息.
换句话说,我希望收到:
{
'id' : 2,
'name' : 'some member',
'groups' : [
{
'id' : 55,
'name' : 'group 1'
'join_date' : 34151564
},
{
'id' : 56,
'name' : 'group 2'
'join_date' : 11200299
}
]
}
注意join_date.
我try 了这么多解决方案,当然包括Django Rest-Framework official page about it个,但似乎没有人给出正确而明确的答案-我需要做些什么才能包括这些额外的字段?我发现Django-Testypie更直截了当,但也有其他一些问题,我更喜欢睡觉框架.