第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何編寫一個函數(shù)來檢查 django 中酒店的空房間

如何編寫一個函數(shù)來檢查 django 中酒店的空房間

守著星空守著你 2023-06-06 16:39:10
我正在構(gòu)建一個酒店管理系統(tǒng),我已經(jīng)編寫了一個 check_availability 函數(shù),該函數(shù)將根據(jù)客戶要求的類別檢查房間是否為空,但事實(shí)證明該函數(shù)忽略了數(shù)據(jù)庫,因?yàn)樗魂P(guān)心現(xiàn)有的一個不是添加的一個。這是代碼:從 django.db 導(dǎo)入模型from django.contrib.auth.models import Userclass RoomCategory(models.Model):    name      = models.CharField(max_length=59)    price     = models.IntegerField()    beds      = models.PositiveIntegerField()    capacity  = models.PositiveIntegerField()    size      = models.CharField(max_length=59)    def __str__(self):        return self.nameclass Room(models.Model):    room_number = models.CharField(max_length=60)    room_category = models.ForeignKey(RoomCategory, on_delete=models.CASCADE)    def __str__(self):        return f"The room {self.room_number} {self.room_category} has a maximum of {self.room_category.capacity} person and cost {self.room_category.price}/night "    class Booking(models.Model):    customer  = models.ForeignKey(User, on_delete=models.CASCADE)    room      = models.ForeignKey(Room, on_delete=models.CASCADE)    check_in  = models.DateTimeField()    check_out = models.DateTimeField()    def __str__(self):        return f"{self.customer} has booked for a {self.room} room from {self.check_in} to {self.check_out}"    from django.shortcuts import renderfrom .forms import BookingFormfrom .models import Booking, RoomCategory, Roomfrom django.views.generic import FormView  from Hotel.Availabililty.Available import check_availabilityfrom django.http import HttpResponse# Create your views here.class BookingFormview(FormView):    form_class      = BookingForm    template_name   = 'Hotel/bookingformview.html'                )
查看完整描述

1 回答

?
心有法竹

TA貢獻(xiàn)1866條經(jīng)驗(yàn) 獲得超5個贊

Room您可以獲得不存在重疊的 s列表Booking:


roomlist = Room.objects.filter(

    room_category__name=data['room']

).exclude(

    booking__check_in__lte=data['check_out'],

    booking__check_out__gte=data['check_in']

)

邏輯如下,如果a 1 > b 2或b 1 < a 2 ,兩個區(qū)間[a 1 , b 1 ]和[ a 2 , b 2 ]不重疊。因此我們可以否定邏輯,因此如果a 1 ≤b 2且b 1 ≥a 2則兩個范圍合計。


查看完整回答
反對 回復(fù) 2023-06-06
  • 1 回答
  • 0 關(guān)注
  • 151 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號