Django REST:不是模型字段的序列化程序字段

2024-09-28 21:38:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个模型(和匹配的序列化程序):

class Book(models.Model):
   created = models.DateTimeField(auto_now_add=True)
   owner = models.ForeignKey(MyUser)
   title = models.CharField(max_length=100, blank=True, default='')
   author = models.CharField(max_length=100, blank=True, default='')

class ReadBy(models.Model):
   created = models.DateTimeField(auto_now_add=True)
   owner = models.ForeignKey(MyUser)

当这本书读过之后,它就被存储在ReadBy数据库中。当用户使用图书模型/序列化程序检索书籍时,我需要一个字段来告诉我该用户是否阅读了该书。在

例如,我想在模型书中添加一个字段(伪代码):

^{pr2}$

因此,我需要检查ReadBy数据库中是否存在记录,如果存在,则显示true或false。在

谢谢。在


Tags: 模型程序addtrueautomodel序列化models
1条回答
网友
1楼 · 发布于 2024-09-28 21:38:45

我们要做的是,在Book模型的序列化程序方法中,您可以访问提供context['request'].user和{}的{}对象

我假设您的ReadBy有一个FK到Book,否则不清楚如何将它们链接在一起

class ReadBy(models.Model):
   created = models.DateTimeField(auto_now_add=True)
   owner = models.ForeignKey(MyUser)
   book = models.ForeignKey(Book)

让我们做一个BookSerializer

^{pr2}$

该字段将包含True或{},作为布尔值,它们将被转换为您的REST格式,例如JSON(或者您可以很容易地返回true和{}字符串)

现在在你的ViewSet中使用它

class BookViewSet(viewsets.ModelViewSet):
    model = Book
    serializer_class = BookSerializer

相关问题 更多 >