Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/144.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django模型继承和序列化程序_Python_Django_Django Rest Framework_Django Serializer - Fatal编程技术网

Python Django模型继承和序列化程序

Python Django模型继承和序列化程序,python,django,django-rest-framework,django-serializer,Python,Django,Django Rest Framework,Django Serializer,我想在NoticeModel中有几个模型,但目前我只有一个: class NoticeModel(SpicerModel): userId = models.ForeignKey( 'account.User', on_delete=models.CASCADE, null=False, blank=False, related_name='notice_user' ) is_read = models.BooleanFie

我想在
NoticeModel
中有几个模型,但目前我只有一个:

class NoticeModel(SpicerModel):
    userId = models.ForeignKey(
        'account.User',
        on_delete=models.CASCADE, null=False, blank=False,
        related_name='notice_user'
    )
    is_read = models.BooleanField(null=False, blank=False, default=False)
    context = models.CharField(max_length=64, null=False, blank=False, choices=NoticeContext.CHOICES)
    message = models.CharField(max_length=255, null=False, blank=False, default='')

class BookingRequestNotice(NoticeModel):
    booking_request = models.ForeignKey(
        BookingRequest,
        on_delete=models.CASCADE,
        null=False,
        blank=False,
        related_name='booking_event_notice'
    )
下面是序列化程序:

class NoticeModelSerializer(serializers.HyperlinkedModelSerializer):
    userId = serializers.ReadOnlyField(source='userId.email')

    class Meta:
        model = NoticeModel
        fields = [
            'id',
            'userId',
            'is_read',
            'context',
            'message'
        ]


class BookingRequestNoticeSerializer(NoticeModelSerializer):

    class Meta:
        model = BookingRequestNotice
        fields = NoticeModelSerializer.Meta.fields + ['booking_request']
要获得所有通知,我需要:

class NoticeList(APIView):
    permission_classes = [permissions.IsAuthenticated]

    def get(self, request):
        user = getCurrentUser(request)
        notices = NoticeModel.objects.filter(userId=user).filter(is_read=False)
        serializer = NoticeModelSerializer(notices, many=True, context={'request': request})
        return Response(serializer.data)
问题是,因为我使用的是
NoticeModelSerializer
,所以我只获取带有公共字段的对象(我不获取
booking\u请求
)。如何返回特定的序列化程序而不必单独查询它们中的每一个