【发布时间】:2017-05-15 15:59:58
【问题描述】:
我是使用 DRF 的新手。我有一个 2 层的多对多关系,我希望能够提供服务。
# models.py
class Person(models.Model):
name = models.CharField(max_length=32)
class Group (models.Model):
name = models.CharField(max_length=32)
people = models.ManyToManyField(Person,related_name='groups',blank=True)
class Event(models.Model):
name = models.CharField(max_length=32)
groups = models.ManyToManyField(Group,related_name='events',blank=True)
在我的序列化程序中,我希望能够在 Person 中显示他们正在参加的活动。
class PersonSerializer(serializers.ModelSerializer):
groups = serializers.StringRelatedField(many=True)
#not sure how to lookup the events related field here...
events = EventSerializer(source='groups.name', many=True,read_only=True)
class Meta:
model = Person
fields = ('name', 'events')
但是,我在查找事件时遇到了错误。这种查找甚至可能吗?
目前的输出如下所示:
{
"id": 1,
"name": "mike",
"groups": [
"dev"
],
"events": null
}
我希望输出是事件列表。
【问题讨论】:
标签: python django django-models django-rest-framework