如何使用Django中的ID列表订购相关表
这是我试图执行的示例;
class GroupA(models.Model):
name=models.CharField(max_length=250)
class GroupB(models.Model):
category = models.CharField(max_length=250)
group_a = models.ForeignKey(GroupA)
我有ID列表; [1,2,3]
。如何使用ID列表通过groupb
执行groupa
的顺序。
目前,我要返回的数据的一个示例是;
[
{
"id": 3,
"category": "Category 1",
"group_a": [
{
"id": 2,
"name": "John"
},
{
"id": 1,
"name": "Doe"
},
{
"id": 3,
"name": "Jane"
}
]
}
]
我要存档的是使用ID列表订购group_a
的数据; [1,2,3]
。因此它将返回这样的东西;
[
{
"id": 3,
"category": "Category 1",
"group_a": [
{
"id": 1,
"name": "Doe"
},
{
"id": 2,
"name": "John"
},
{
"id": 3,
"name": "Jane"
}
]
}
]
//编辑
serializer.py
class GroupASerializer(serializers.ModelSerializer):
class Meta:
model = GroupA
fields = "__all__"
class GroupBSerializer(serializers.ModelSerializer):
group_a = GroupASerializer(read_only=True, many=True)
class Meta:
model = GroupB
fields = "__all__"
views.pys.py
class GroupBView(APIView):
serializer_class = GroupBSerializer
permission_classes = (IsAuthenticated,)
def get(self, request):
group_trip = GroupB.objects.all()
serializer = GroupBSerializer(group_trip, many=True)
return Response(serializer.data)
here is example of what I am trying to perform;
class GroupA(models.Model):
name=models.CharField(max_length=250)
class GroupB(models.Model):
category = models.CharField(max_length=250)
group_a = models.ForeignKey(GroupA)
I have list of ids; [1, 2, 3]
. How do I perform an order of GroupA
through GroupB
using the list of ids.
Currently, an example of data I am returning is;
[
{
"id": 3,
"category": "Category 1",
"group_a": [
{
"id": 2,
"name": "John"
},
{
"id": 1,
"name": "Doe"
},
{
"id": 3,
"name": "Jane"
}
]
}
]
What I am trying to archive is order the data of group_a
using list of ids; [1, 2, 3]
. So it would return something like this;
[
{
"id": 3,
"category": "Category 1",
"group_a": [
{
"id": 1,
"name": "Doe"
},
{
"id": 2,
"name": "John"
},
{
"id": 3,
"name": "Jane"
}
]
}
]
//Edit
Serializer.py
class GroupASerializer(serializers.ModelSerializer):
class Meta:
model = GroupA
fields = "__all__"
class GroupBSerializer(serializers.ModelSerializer):
group_a = GroupASerializer(read_only=True, many=True)
class Meta:
model = GroupB
fields = "__all__"
views.py
class GroupBView(APIView):
serializer_class = GroupBSerializer
permission_classes = (IsAuthenticated,)
def get(self, request):
group_trip = GroupB.objects.all()
serializer = GroupBSerializer(group_trip, many=True)
return Response(serializer.data)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
也许您应该使用ModelViewSet
我没有检查它是否有效
Maybe you should use ModelViewSet
I didn't check if it works