Sql 如何在django中添加或排除查询的约束?
我有下面的排除,它带回了在过去两分钟内有交易的所有书籍。我想添加另一个约束,该约束表示仅当来自一系列商店时 在SQL中,位置id=1或位置id=2或位置id=3 书籍有一个位置标识 如何将其应用于以下查询Sql 如何在django中添加或排除查询的约束?,sql,django,django-models,django-orm,Sql,Django,Django Models,Django Orm,我有下面的排除,它带回了在过去两分钟内有交易的所有书籍。我想添加另一个约束,该约束表示仅当来自一系列商店时 在SQL中,位置id=1或位置id=2或位置id=3 书籍有一个位置标识 如何将其应用于以下查询 transaction_window = timezone.now() + datetime.timedelta(minutes=-2) ts = Book.objects.exclude(book_id__in = Status.objects
transaction_window = timezone.now() + datetime.timedelta(minutes=-2)
ts = Book.objects.exclude(book_id__in = Status.objects
.filter(transaction_time__gte=transaction_window)
.values_list('book_id', flat=True))
使用一个。它们内置于django中,允许更复杂的查找。您可能只需要
location\uu in=(1,2,3)
假设Book
模型有字段Book\u id
和Status
也有字段Book\u id
,并且该字段只是普通的IntegerField
或类似字段
from django.db.models import Q
transaction_window = timezone.now() - datetime.timedelta(minutes=2)
statuses = Status.objects.filter(transaction_time__gte=transaction_window)
ts = Book.objects.filter(~Q(book__id__in=statuses)
| ~Q(location_id__in=(1, 2, 3)))
如果我对您的模型的猜测是正确的。Book.objects.exclude(状态\事务\时间\事务\窗口)