Как проверить или установить наличие номеров в Django - PullRequest
0 голосов
/ 07 мая 2020

Я строю систему бронирования отелей. Я новичок в Django, и я любезно прошу указать, как выполнить настройку или проверку наличия свободных мест. Я спроектировал свою модель комнаты таким образом, что номер определенного типа c может иметь несколько количеств. Я хочу реализовать систему таким образом, чтобы до того, как пользователь сделает бронирование, в комнате должно быть достаточное количество, а также она будет доступна в указанную c дату, указанную пользователем. Ниже приводится код номера и модели бронирования

Модель номера

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 Ответ

0 голосов
/ 07 мая 2020

Извините, я не могу предоставить вам полный код. Но вам нужно реализовать функцию в представлении. Когда пользователь отправляет форму, вы отправляете запрос в это представление. Где выполняется проверка доступности комнаты и на основе этой успешной или неудачной рендеринга страницы.

Вы можете делать это динамически (без перезагрузки страницы), но для этого требуется AJAX. Тем не менее, javascript отправит запрос в представление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...