Django-建立预订系统

问题描述 投票:2回答:1

作为任务的一部分,我创建了一个“公寓列表”网站。我设法做到了,但是现在我需要为此建立一个“预订系统”。

[基本思想是,登录用户可以从列出的公寓中选择一个公寓,选择一个“开始日期”和“结束日期”(如果尚未预订该公寓),然后预定该公寓。

我是一名Django新手,需要一些指针才能从此任务开始。

我有一个公寓模型,其中包含我用来通过模板打印所有内容的所有公寓信息。

我正在使用提供的django用户模型进行注册/登录。

我需要哪种型号的预订,以及如何连接所有东西?我尝试制作预订模型,但不知道下一步该怎么做。

我不是要你为我解决这个问题,而是要有人向我解释(如果可能的话),我将如何继续独自实现这一目标。

这是我的公寓模型:

class Apartment(models.Model):
    title = models.CharField(max_length=200)
    address = models.CharField(max_length=200)
    city = models.CharField(max_length=100)
    state = models.CharField(max_length=100)
    zipcode = models.CharField(max_length=20)
    description = models.TextField(blank=True)
    price = models.IntegerField()
    bedrooms = models.IntegerField()
    bathrooms = models.DecimalField(max_digits=2, decimal_places=1)
    garage = models.IntegerField(default=0)
    size = models.IntegerField()
    photo_main = models.ImageField(upload_to='photos/%Y/%m/%d/')
    photo_1 = models.ImageField(upload_to='photos/%Y/%m/%d/', blank=True)
    photo_2 = models.ImageField(upload_to='photos/%Y/%m/%d/', blank=True)
    photo_3 = models.ImageField(upload_to='photos/%Y/%m/%d/', blank=True)
    photo_4 = models.ImageField(upload_to='photos/%Y/%m/%d/', blank=True)
    in_rent = models.BooleanField(default=False)
    list_date = models.DateTimeField(default=datetime.now, blank=True)

    def __str__(self):
        return self.title

非常感谢您!

python django view model
1个回答
0
投票
这些字段支持链接one-to-one, one-to-many, and many-to-many relationships

在您的情况下,一个公寓可以有多个预订,这意味着您需要在预订中有一个字段指向一个公寓,这可以使用ForeignKey来完成]

您的模型应如下所示:

Reservation(models.Model) apartment = models.ForeignKey(to=Apartment, related_name='reservations', on_delete=models.Cascade) start_date = models.DateField() end_date = models.DateField()

要检索公寓的所有预订,您只需使用apartment.reservations,因为我们已经在ForeignKey字段中定义了related_name

您甚至可以通过执行Reservations.objects.filter(apartment=apartment, start_date__gte=<your_start_date>, end_date__gte<your_end_date>)来过滤特定日期
© www.soinside.com 2019 - 2024. All rights reserved.