按 onetoone 模型字段过滤 Django 查询集 属性
filter django queryset by onetoone model field property
我有两个模型 类 并且它们通过 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)
您正在寻找一个常见问题,您真正想做的是 related_name__column_name
在过滤器中,您可以尝试
queryset = Mybook.objects.filter(book__is_user_ok=True=True)
Reference from official docs:
https://docs.djangoproject.com/en/4.0/topics/db/queries/
双下划线用于连接,因为您已经在此处设置了各种连接模型中的关系,它根据模型关系使用。
您使用了错误的语法。将 (book.is_user_ok=True)
替换为 (book__is_user_ok=True)
问题是,使用“.”代替 '__'。这是处理另一个模型时的正确语法 class
我有两个模型 类 并且它们通过 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)
您正在寻找一个常见问题,您真正想做的是 related_name__column_name
在过滤器中,您可以尝试
queryset = Mybook.objects.filter(book__is_user_ok=True=True)
Reference from official docs: https://docs.djangoproject.com/en/4.0/topics/db/queries/
双下划线用于连接,因为您已经在此处设置了各种连接模型中的关系,它根据模型关系使用。
您使用了错误的语法。将 (book.is_user_ok=True)
替换为 (book__is_user_ok=True)
问题是,使用“.”代替 '__'。这是处理另一个模型时的正确语法 class