0

嗨,我正在尝试在 django 查询中使用 OR 运算符。我的代码看起来像:

hotels = models.Hotel.objects.filter(
        wed=True,
        county=hotel_main.county.id,
        (x=True)|(y=True)|(z=True),
        subscriptions__end_date__gte=datetime.date.today(),
        subscriptions__enquiry_count__lte=F('subscriptions__tier__enquiry_limit'),
    ).distinct()

我正在尝试获取至少具有上述 x、y、z 之一的记录。任何帮助...谢谢

4

2 回答 2

2

Q 对象

Contact.objects.filter(Q(last_name__icontains=request.POST['query']) | 
                           Q(first_name__icontains=request.POST['query']))

REF:Django 模型查询中的 OR 运算符

于 2012-09-17T14:22:41.943 回答
2

您将不得不使用Q对象。像这样的东西:

hotels = models.Hotel.objects.filter(
    wed=True,
    county=hotel_main.county.id,
    subscriptions__end_date__gte=datetime.date.today(),
    subscriptions__enquiry_count__lte=F('subscriptions__tier__enquiry_limit')).filter( Q(x=True) | Q(y=True) | Q(z=True)).distinct()
于 2012-09-17T14:22:55.850 回答