微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Django-根据对象的ForeignKey过滤对象,但有多种选择?

如何解决Django-根据对象的ForeignKey过滤对象,但有多种选择?

我正在开发一个应用,其中每个User都与他或她说的语言列表相关联。该应用程序与书籍有关,每个Book都有一个语言字段,代表着该书所使用的语言。

我正在尝试获取所有以用户的语言 s 写的书。因此,如果用户说英语 AND 西班牙语,我想检索所有用英语 AND 西班牙语写的书。

我的代码

users / models.py

class User(AbstractUser):
    languages = models.ManyToManyField(Language)

books / models.py

class Book(models.Model):
    language = models.ForeignKey(Language)

books / views.py :该代码实际上不起作用,但我将其发布以希望传达我要实现的目标:

class BooksView(APIView):
    def get(self,request):
        books = Book.objects.filter(language=request.user.languages)
        return books

而不是Book.objects.filter(language=request.user.languages),如何过滤不是基于 ONE 语言而是多种语言的图书?

解决方法

要使用多个值进行过滤,您应该使用(define (merge a b) (cond ((null? a) b) ((null? b) a) (else (cons (car a) (merge b (cdr a)))) )) 过滤器-它会以可迭代的方式查找特定查询,因此在您的情况下看起来像这样

__in

顺便说一句,顺便说一句,“以英语和西班牙语写的书”这句话意味着必须将特定的书写成两个版本。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。