繁体   English   中英

Django具有多个条件的反向查找外键

[英]Django reverse lookup foreign keys with multiple conditions

我正在尝试在Django中使用多种条件进行反向查找,希望我的问题不会与其他问题重复。 让我解释:

我有两个模型:模型A:

class A(models.Model):
    title = models.CharField(max_length=200)
    ... other fields

型号B:

class B(models.Model):
    a = models.ForeignKey(A)
    label = models.CharField(max_length=200)
    value = models.CharField(max_length=200)
    ... other fields

如何获得A:1)带有标签= name,值= John的B 2),并且带有标签= age,值= 20的B

我尝试了以下操作,但不起作用:

A.objects.filter(b__label="name", b__value="John", b__label="age", b__value=20)

您可以使用Q object

from django.db.models import Q

A.objects.filter(
    (Q(b__label="name") & Q(b__value="John")) | (Q(b__label="age") & Q(b__value=20))
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM