DRF:访问元之外的序列化器字段

时间:2021-02-03 10:36:13

标签: django django-rest-framework

所以,我需要在帖子上获得“喜欢”状态,并且需要我的序列化器返回 attr“喜欢”布尔值。

我正在尝试获取正在序列化的当前帖子,将其传递到将返回 true 或 false 的查询中。

查询如下:

class PostSerializer(serializers.ModelSerializer):
    PostedByName = serializers.ReadOnlyField(source='PostedBy.Name')
    PostedByUserName = serializers.ReadOnlyField(source='PostedBy.user.username')
    current_user = serializers.SerializerMethodField('_user')
    # Use this method for the custom field
    def _user(self, obj):

        request = self.context.get('request', None)
        if request:
            CurrentUser = request.auth.user
            try:
                PostLikes.objects.get(Post = #post id, User = CurrentUser)
                return True
            except exceptions.ObjectDoesNotExist:
                return False
    class Meta:
        model = Posts
        fields = ['PostedByName', 'PostedByUserName', 'Title', 'PostBody', 'Image1', 'Image2', 'Image3', 'PostedOn', 'Vote', 'CommentCount', 'current_user', 'id']
        read_only_fields = fields

0 个答案:

没有答案