我在Django有一个数据库处理场地预订如下:
class Booking(models.Model):
venue = models.ForeignKey(Venue)
start_date = models.DateTimeField()
end_date = models.DateTimeField()
每当创建预订时,它会存储该场地的开始和结束时间。
现在,在下一次预订时,在我的视图中,我需要检查传入的start_time是否已经存在,或者是否已经预订的其他时间段之间。
def add_booking(request):
user = UserProfile.objects.get(user__pk=request.user.id)
if 'start_time' in request.POST:
start_time = request.POST['start_time']
if 'end_time' in request.POST:
end_time = request.POST['end_time']
#logic for checking if start_time is already booked.
我该怎么做?
答案 0 :(得分:2)
您需要检查是否有任何预订的开始时间早于或等于您请求的开始时间,结束时间晚于或等于请求的开始时间:
Booking.objects.filter(start_date__lte=start_time, end_date__gte=start_time).count()
如果返回0,则表示尚未预定开始时间。