什么是related_name对on ManyToManyField和ForeignKey字段有用的参数?例如,给出以下代码,有什么影响related_name='maps'?
class Map(db.Model):
members = models.ManyToManyField(User, related_name='maps',
verbose_name=_('members'))
Run Code Online (Sandbox Code Playgroud) 我有一个关于处理m2m /通过模型及其在django rest框架中的表示的问题.我们来看一个经典的例子:
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()
Run Code Online (Sandbox Code Playgroud)
serializers.py:
imports...
class MemberSerializer(ModelSerializer):
class Meta:
model = Member
class GroupSerializer(ModelSerializer):
class Meta:
model = Group
Run Code Online (Sandbox Code Playgroud)
views.py:
imports...
class MemberViewSet(ModelViewSet):
queryset = Member.objects.all()
serializer_class = MemberSerializer
class GroupViewSet(ModelViewSet):
queryset = Group.objects.all()
serializer_class = GroupSerializer
Run Code Online (Sandbox Code Playgroud)
在获取成员实例时,我成功接收了所有成员的字段及其组 - 但是我只获得了组的详细信息,而没有来自成员模型的额外详细信息.
换句话说,我希望收到:
{ …Run Code Online (Sandbox Code Playgroud) 我目前在使用 Django rest 框架执行两层嵌套时遇到问题。我已经阅读了带有嵌套关系的 DRF 文档http://www.django-rest-framework.org/api-guide/relations/并成功完成了第一层,即在 JSON 中显示具有多种颜色的样式。虽然不确定如何链接另一层。任何帮助,将不胜感激。提前致谢!
当前输出如下所示:
[{
"name": "AAA123",
"colors": [
{
"name": "White"
}
]
},
{
"name": "BBB222",
"colors": [
{
"name": "White"
},
{
"name": "Pink"
},
{
"name": "Blue"
}
]
}]
Run Code Online (Sandbox Code Playgroud)
想要的输出应该是这样的:
[{
"name": "AAA123",
"colors": [
{
"name": "White",
"sizes": [{name: "S"}, {name: "M"}]
}
]
},
{
"name": "BBB222",
"colors": [
{
"name": "White",
"sizes": [{name: "XS"}, {name: "S"}]
},
{
"name": "Pink"
"sizes": [{name: "XL"}, {name: "XXL"}] …Run Code Online (Sandbox Code Playgroud)