如何在 Django 中检查或设置房间可用性
Posted
技术标签:
【中文标题】如何在 Django 中检查或设置房间可用性【英文标题】:How to check or set room availability in Django 【发布时间】:2020-05-07 13:19:58 【问题描述】:我正在构建一个酒店预订系统。我对 Django 很陌生,我很乐意询问有关如何进行设置或检查房间可用性实施的指导。我设计了我的房间模型,特定房间类型可以有多个数量。我想以这样一种方式实现系统,即在用户进行预订之前,房间应该有足够的数量,并且在用户指定的特定日期持续时间内可用。以下是房间和预订模式的代码
房间模型
class Room(models.Model):
"""Creates room details"""
ROOM_CHOICES = (
('Single', "Single"),
('Double', "Double"),
('Family', "Family"),
('Suit', "Suit"),
)
hotel = models.ForeignKey(
Hotels, on_delete=models.CASCADE, null=True, blank=True,)
room_Type = models.CharField(
max_length=20,
choices=ROOM_CHOICES,
default='Please Select',
)
room_photo = models.ImageField(
default='default.jpg', upload_to='room_photos')
room_Name = models.CharField(max_length=200)
room_details = models.CharField(max_length=500)
room_Capacity = models.PositiveIntegerField(default=0)
slug = models.SlugField(unique=True)
room_Price = models.PositiveIntegerField(default=0)
total_Rooms = models.PositiveIntegerField(default=0)#room quantity
预订(购物车)模型
class CartItems(models.Model):
cart = models.ForeignKey(
'Cart', on_delete=models.CASCADE, null=True, blank=True)
rooms = models.ForeignKey(
Room, on_delete=models.CASCADE, null=True, blank=True)
quantity = models.PositiveIntegerField(default=1)
line_total = models.DecimalField(
max_digits=1000, decimal_places=2, default=0.00)
CheckIn = models.DateField(null=True, blank=True)
CheckOut = models.DateField(null=True, blank=True)
stay_duration = models.PositiveIntegerField(default=1)
updated = models.DateTimeField(auto_now_add=False, auto_now=True)
timestamp = models.DateTimeField(auto_now_add=True, auto_now=False)
总而言之,在用户提交或确认预订之前,房间数量以及入住和退房时间应该是可用的。我该如何执行此操作。请协助。非常感谢提前
【问题讨论】:
【参考方案1】:抱歉,我不会为您提供完整的代码。但是您需要在视图中实现一个功能。当用户提交表单时,您向该视图发送请求。根据渲染成功或失败页面执行房间可用性检查的位置。
您可以动态执行此操作(无需重新加载页面),但需要 AJAX。尽管如此,javascript 还是会将请求发送到视图。
【讨论】:
以上是关于如何在 Django 中检查或设置房间可用性的主要内容,如果未能解决你的问题,请参考以下文章