所以,我需要在帖子上获得“喜欢”状态,并且需要我的序列化器返回 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