0
我正在建立一个django查询,使公寓预订。用户输入开始日期和结束日期,同时检查数据库,看看是否存在冲突预留。也就是说,如果预订日期范围的任何部分与现有预订的日期范围重叠。django查询集的预订系统
我有一个工作的系统,但它击中了数据库3次,我相信它可以在1(在查询中有OR条件?)完成。我可以优化反馈如下?:
bookings = Booking.objects.filter( arrival_date__range=(query_start, query_end) )
if len(bookings) > 0:
status = 'failure'
else:
bookings = Booking.objects.filter( departure_date__range=(query_start, query_end) )
if len(bookings) > 0:
status = 'failure'
else:
bookings = Booking.objects.filter(arrival_date__lte=query_start).filter(departure_date__gte = query_end )
if len(bookings) > 0:
status = 'failure'
非常感谢