擅长:python、mysql、java
<p>可以使用SerializerMethodField动态获取标志,如下所示:</p>
<pre><code>class BlogPostSerializer(serializer.ModelSerializer):
user = SomeUserSerializer()
likes = BlogPostLikesSerializer()
has_liked = SerializerMethodField("get_has_liked")
class Meta:
model = BlogPostLikes
fields = ("id", "user", "likes", "content", "image", "has_liked")
def get_has_liked(self, obj):
user = self.context.get('request').user
return len([l.user.id == user.id for l in obj.likes]) > 0
</code></pre>
<p>但是,您需要在实例化序列化程序时传递请求,方法是执行以下操作:<code>serializer = BlogPostSerializer(context={'request': request})</code></p>