0
我正在制作我的第一个API,它几乎是我想要的。我试图让用户既可以单独访问,也可以通过他们的组访问,但我想设置API来显示用户明白的所有访问权限,而不是将其嵌入到组中。合并django-rest-framework结果
基本上,我想取group_affiliation结果并将它们合并到其余的结果中,因为它们具有相同的结构,并且在该格式中使用起来更容易。
目前,我的输出是这样的:
[
{
"username": "admin",
"access": [
{
"name": "foo"
},
{
"name": "bar"
}
],
"group_affiliation": [
{
"access": [
{
"name": "eggs"
},
{
"name": "foo"
}
],
},
]
},
]
但我想它看起来更像是这个,这里group_affiliation结果合并到其它结果:
[
{
"username": "admin",
"access": [
{
"name": "foo"
},
{
"name": "bar"
},
{
"name": "eggs"
}
],
}
]
这里我的models.py:
class Access(models.Model):
name = models.CharField(max_length=100)
site_user_access = models.ManyToManyField(User, blank=True)
site_group_access = models.ManyToManyField(Group, blank=True)
这里是我的serializers.py:
class AccessSerializer(serializers.ModelSerializer):
class Meta:
model = TopAccess
fields = ('name',)
class GroupSerializer(serializers.ModelSerializer):
access = AccessSerializer(
source='access_set',
many=True
)
class Meta:
model = Group
fields = (
'access',
)
class UserAccessSerializer(serializers.ModelSerializer):
access = AccessSerializer(
source='access_set',
many=True
)
group_affiliation = GroupSerializer(
source='groups',
many=True,
)
class Meta:
model = User
fields = (
'username',
'access',
'group_affiliation',
)
任何帮助将不胜感激。
,你究竟有什么问题,列出所需的结果呢?您需要更具体,并且只包含解释问题所需的最少量代码。 [mcve] –
@HåkenLid我试图将显示在“group_affiliation”下的结果合并到其他结果中。我编辑了代码以便它更简洁 – joedurbak
使用串行器方法字段使您的自定义输出 –