【发布时间】:2021-11-21 11:47:38
【问题描述】:
我有一个模型代表一个房间和一个模块。一个模块可以有多个房间。这是我的模块对象的获取请求结果 -
{
"module_id": 4,
"rooms": [
{
"room_id": 2,
"title": "4",
"desc": "22",
"level": "2",
"is_deleted": true,
},
{
"room_id": 3,
"title": "3",
"desc": "22",
"level": "2",
"is_deleted": false,
}
],
"title": "4",
"desc": "sdsdsdss",
"is_deleted": false,
}
现在我希望模块的获取请求显示所有模块,并且每个模块中包含的房间应该有 is_deleted=False。 换句话说,我不希望在 get 请求中显示 room_id=2 的房间。
这是我的views.py文件-
class add_module(APIView):
def get(self, request, format=None):
module = Module.objects.filter(is_deleted=False, rooms__is_deleted=False)
module_serializer = ModuleSerializer(module, many=True)
return Response(module_serializer.data, status = status.HTTP_200_OK)
这是我的模块序列化文件 -
class ModuleSerializer(serializers.ModelSerializer):
rooms = RoomSerializer(read_only=True, many=True)
class Meta:
model = Module
fields = "__all__"
【问题讨论】:
标签: python django django-models django-rest-framework django-filter