2015-03-02 37 views
1

我有在Django的數據庫在處理場地預訂如下:檢查DateTime對象存在於數據庫

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. 

我該如何解決這個問題?

回答

2

你需要檢查是否有與較早的開始時間或與您的要求的開始和結束時間後還是一樣的要求開始任何預訂:

Booking.objects.filter(start_date__lte=start_time, end_date__gte=start_time).count() 

如果回來爲0則開始時間尚未預訂。

+2

相關文檔:https://docs.djangoproject.com/en/1.7/topics/db/queries/#filtered-querysets-are-unique – rnevius 2015-03-02 10:31:34