这是我定义的模型:
class Book(models.Model):
authors = models.ManyToManyField(to='Author')
category = models.ForeignKey(to='Category')
tags = models.ManyToManyField(to='tags')
# some other fields
我如何找到在这三个领域(作者、类别、标签(与特定对象最相似的十本书?
例如,如果我有以下书籍对象:
Book:
title: Harry Potter
authors: J. K. Rowling
category: Novel
tags: Fantasy Fiction, Drama, Young adult fiction, Mystery, Thriller
我想将具有最匹配的作者、类别和标签字段的图书对象返回到哈利波特图书。
我的问题几乎是这样的,但我正在寻找一个更清晰的答案。
我认为您需要导入Q从django.db模型导入Q
Book.objects.filter(Q(tags='Fantasy Fiction')|Q(tags='Young adult fiction')|Q(tags ='Mystery'),category='Novel',authors='J. K. Rowling')