Skip to main content
 首页 » 编程设计

python之Django 过滤器反向外键

2024年08月21日25langtianya

我在 Django 应用程序中有这些表:

class Order(models.Model): 
    ... 
 
class SubOrder1(models.Model): 
    order = models.ForeignKey(Order, blank=True, null=True) 
 
class SubOrder2(models.Model): 
    order = models.ForeignKey(Order, blank=True, null=True) 
 
... 

我怎样才能写一个关于订单的查询,它只产生至少有一个相关的 SubOrder1 或 SubOrder2 的订单?我需要类似的东西

Order.objects.filter(suborder__count__ge = 1, ...) 

我正在使用 Django = 1.9.2 和 Python = 3.4.1

请您参考如下方法:

使用isnull字段查找:

orders_with_suborders = Order.objects.filter( 
    Q(suborder1__isnull=False) | Q(suborder2__isnull=False) 
)