如何在 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 中检查或设置房间可用性的主要内容,如果未能解决你的问题,请参考以下文章

用于检查房间可用性的 SQL 查询

设计一个高性能的酒店房间预订系统

查找预订重叠以检查日期可用性

如何检查客户端 JavaScript 中的端口可用性?

检查GWT Elemental2叠加层中方法或属性的可用性

Django admin,如何在 django 模板中正确检查用户的权限?