我有两个模型(和匹配的序列化器):
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数据库中 . 当用户使用Book model / serializer检索书籍时,我想要一个字段告诉我该特定用户是否已阅读该书 .
即我想在Model Book中添加一个字段(伪代码):
has_been_read_by = if_exists_in_readby display 'true' else 'false'
所以我需要检查ReadBy数据库中是否存在记录,然后显示true或false,如果是这样的话 .
谢谢 .
1 回答
需要注意的是,在
Book
模型的序列化方法中,您可以访问context
,它提供context['request'].user
和obj
,表示Book
对象我会假设您的
ReadBy
有一个FK到Book
,否则你不清楚如何将它们连接在一起我们来做一个
BookSerializer
该字段将包含
True
或False
,作为布尔值,将转换为您的REST格式,例如JSON(或者您可以轻松返回true
和false
字符串)现在在你的_1260426中使用它,例如