如何在django中创建其中具有不同表列的不同模型的模型?

时间:2018-10-22 18:55:44

标签: django sqlite django-models django-admin

我是Django开发的新手,被困在我正在从事的项目中。我一直在尝试创建一个网站,在指定的预订期限内,多个人可以租用不同的家具用于他们的房屋,而这对于其他人来说是不会重叠的。因此,我想,我将创建一个具有多对多关系的家具模型和预订期,如下所示

applySubstitution

然后在django admin中,我添加了家具类,以便我们可以自己添加模型。挑战在于,特定家具可能具有多个预订期,并且它们不能相互重叠。因此,家具可以没有预订期,而其他家具可以有5或10个预订期。另外,不同的家具项目的预订期也可能略有不同。因此,如果我们将所有可能的预订期都添加到表预订期中,最终将占用大量空间。如果有人可以告诉我最好的方法,这样我将能够通过django管理面板添加家具,这将非常有帮助。

1 个答案:

答案 0 :(得分:1)

您必须创建一个新表,将两个表连接在一起。例如:

class Person(models.Model):
    person_name = models.CharField(max_length=200)

    def __str__(self):
        return self.person_name 

class Furniture(models.Model):
    furniture_type = models.CharField(max_length=200)
    furniture_owner_name = models.CharField(max_length=200)

    def __str__(self):
        return self.furniture_type

class Reservation(models.Model):
    person = models.ForeignKey(Person, on_delete=models.SET_NULL)
    furniture= models.ForeignKey(Furnituure, on_delete=models.SET_NULL)
    period_start = models.DateField(auto_now_add=True)
    period_end = models.DateField(null=True) 

您必须手动处理此最后一个字段或以表格形式发送。还可以以表格形式发送period_start字段。