Django 模型中的外键数组

Fea*_*ron 5 python django

我不确定这是最好的标题,但我很难简单地表达它。基本上,我正在创建一个代表企业的模型。这包括地址、营业时间等。正是营业时间让我困惑。我有我的地址

class Address(models.Model):
    --snip--
   Business = models.ForeignKey(BusinessInfo)
Run Code Online (Sandbox Code Playgroud)

因此,每个企业都有一个或多个位置地址。我希望对 Hours 做类似的事情

class HoursOnDay(models.Model):
    open = isOpen = models.BooleanField()
    open = models.TimeField(null=True)
    closed = models.TimeField(null=True)
Run Code Online (Sandbox Code Playgroud)

我想要强制执行的是,每个企业都必须有一组 7 HoursOnDay - 一个代表一周中的每一天。我似乎无法偶然发现一种明显而优雅的方法来做到这一点。有没有一个好的方法可以在 django 中对此进行建模?

小智 4

使用多对多字段:

class HoursOnDay(models.Model):
    is_open = models.BooleanField()
    open = models.TimeField(null=True)
    closed = models.TimeField(null=True)

class Day(models.Model):
    hours = models.ManyToManyField(HoursOnDay)

class Business(models.Model):
    days = models.ManyToManyField(Day)
Run Code Online (Sandbox Code Playgroud)

如果您想要限制 7 小时和 7 天,您可以选中 限制要创建的模型实例数量