在Django Rest框架中,要列出所有喜欢帖子的用户,可以按照以下步骤进行:
APIView
或ViewSet
来实现。User.objects.filter(liked_posts__id=post_id)
来获取喜欢帖子ID为post_id
的所有用户。以下是一个示例代码:
# models.py
from django.db import models
from django.contrib.auth.models import User
class Like(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
post = models.ForeignKey(Post, on_delete=models.CASCADE)
class Post(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
liked_by_users = models.ManyToManyField(User, related_name='liked_posts')
# views.py
from rest_framework.views import APIView
from rest_framework.response import Response
class LikedUsersView(APIView):
def get(self, request, post_id):
users = User.objects.filter(liked_posts__id=post_id)
serialized_users = UserSerializer(users, many=True)
return Response(serialized_users.data)
在上述示例中,LikedUsersView
是一个继承自APIView
的视图类,通过GET请求获取喜欢帖子的用户。UserSerializer
是一个用于序列化用户模型的序列化器,可以使用Django Rest框架提供的serializers.ModelSerializer
来定义。
请注意,以上示例中的代码仅供参考,实际应用中可能需要根据具体情况进行调整和扩展。
领取专属 10元无门槛券
手把手带您无忧上云