擅长:python、mysql、java
<p>你可以用<code>SerializerMethodField</code></p>
<p><strong>示例:</strong></p>
<pre><code>class PostSerializer(serializers.ModelSerializer):
fav = serializers.SerializerMethodField('likedByUser')
def likedByUser(self, obj):
request = self.context.get('request', None)
if request is not None:
try:
liked=Favorite.objects.filter(user=request.user, post=obj.id).count()
return liked == 1
except Favorite.DoesNotExist:
return False
return "error"
class Meta:
model = Post
</code></pre>
<p>然后应该从视图中调用序列化程序,如下所示:</p>
<pre><code>class PostView(APIVIEW):
def get(self,request):
serializers = PostSerializer(PostObjects,context={'request':request})
</code></pre>