按onetoone模型字段属性过滤django查询集

时间:2021-07-19 17:00:56

标签: python django django-models django-rest-framework drf-queryset

我有两个模型类,它们与 OneToOneField 相关,就像这里

class Book(models.Model):
      is_user_ok = models.BooleanFiled()
class Mybook(models.Model):
      book = models.OneToOneField( Book, related_name="Book", null=True, blank=True, on_delete=models.SET_NULL)

现在我想通过书籍字段属性创建一个查询集过滤器。但这里book.is_user_ok 不能使用。我怎样才能制作这个查询集过滤器?

queryset = Mybook.objects.filter(book.is_user_ok=True)

2 个答案:

答案 0 :(得分:1)

您正在寻找一个常见问题,您真正想做的是过滤器中的related_name__column_name,在您的情况下,您可以尝试

queryset = Mybook.objects.filter(Books__is_user_ok=True=True)

<块引用>

参考官方文档: https://docs.djangoproject.com/en/3.2/topics/db/queries/

双下划线用于连接,因为您已经在这里设置了连接工作模型中的关系,它根据模型关系使用。

答案 1 :(得分:0)

您使用了错误的语法。用 (book.is_user_ok=True) 替换 (book__is_user_ok=True) 问题是,使用 '.'代替 '__'。这是处理另一个模型类时的正确语法

相关问题