假设我使用默认的 django 模型、一个 Post 模型(下面的代码)和一个将用户链接到帖子的 SavedPost 模型(如果存在特定帖子的特定用户,则为该用户保存该帖子)以及一个 Follower 模型链接 2 个用户(类似于 SavedPost)。
我想要做什么:一个 API,对于用户来说,他们可以获得他们关注的用户的所有帖子,此外,每个帖子都有一个额外的“字段”来说明该帖子是否保存。
class Post(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
post_type = models.CharField(max_length=1, choices=[('B', 'Blog'), ('V', 'Video')], default='B')
file_path = models.URLField(null=True)
title = models.CharField(max_length=255)
description = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
class SavedPost(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
post = models.ForeignKey(Post, on_delete=models.CASCADE)
created_at = models.DateTimeField(auto_now_add=True)
class Meta:
# A user can save a post only once.
unique_together = ('user', 'post')
class Follower(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name="user")
follower = models.ForeignKey(User, on_delete=models.CASCADE, related_name="follower")
created_at = models.DateTimeField(auto_now_add=True)
class Meta:
# A user can follow another user only once
unique_together = ('user', 'follower')
后序列化器:
class PostSerializer(serializers.ModelSerializer):
"""
Nested serializer for post using SimpleUser and Kingdom.
"""
class Meta:
model = Post
fields = ('id', 'user', 'post_type', 'file_path',
'title', 'description', 'created_at', 'updated_at')
def to_representation(self, instance):
data = super().to_representation(instance)
data['user'] = UserSerializer(
User.objects.get(pk=data['user'])).data
return data
到目前为止,根据我所做的视图,我可以获得 request.user 关注的所有帖子,但没有说明它们是否已保存。我正在寻找帖子上的“is_saved”布尔值来表示该帖子是否已为该用户保存。
任何帮助/方法来做到这一点表示赞赏。谢谢。
MMMHUHU
慕森卡
相关分类