Python Django:固定镜头。模型列表关系,是否可以使用固定数量的OneToOneField';是父模型中的FK,而不是子模型中的FK?

Python Django:固定镜头。模型列表关系,是否可以使用固定数量的OneToOneField';是父模型中的FK,而不是子模型中的FK?,python,django,database-design,Python,Django,Database Design,我正在设计一个基于周的菜单应用程序。我想知道我是否应该这样做: class MenuWeek(models.Model): sunday = OneToOneField("MenuDay") monday = OneToOneField("MenuDay") #etc through Saturday class MenuDay(models.Model): # some stuff here, but not a foreign key to MenuWeek

我正在设计一个基于周的菜单应用程序。我想知道我是否应该这样做:

class MenuWeek(models.Model):
    sunday = OneToOneField("MenuDay")
    monday = OneToOneField("MenuDay")
    #etc through Saturday

class MenuDay(models.Model):
    # some stuff here, but not a foreign key to MenuWeek
与此相反:

class MenuDay(models.Model):
    week = ForeignKey("MenuWeek") # (with no OneToOne's defined in MenuWeek)
第一种方法是在父级和子级之间实现短“固定长度”列表关系的好方法,还是我应该在MenuDay中使用ForeignKey并通过表单验证强制执行长度?我认为政府可能会更干净,第一种方式是,明确你每周哪一天编辑


谢谢

我永远不会使用你的第一个选项。最后,您将在每个工作日重复运行特定的代码段。第二个选项将产生更好的代码。

我永远不会使用第一个选项。最后,您将在每个工作日重复运行特定的代码段。第二个选项将产生更好的代码。

首先,第二个选项更好。但是你甚至可以去掉
MenuWeek
,只需在
MenuDay
中添加一个日期或周字段,并以这种方式进行过滤,除非
MenuWeek
应该保存一些数据。

首先,第二个选项更好。但是你甚至可以去掉
MenuWeek
,只需在
MenuDay
中添加一个日期或周字段,并以这种方式进行过滤,除非
MenuWeek
应该保存一些数据。

我采纳了你的建议,找到了一种强制执行固定长度列表的方法(通过巧妙地使用Django管理员)而使用第二种方法。事实上,我第一次尝试就是为了看到你警告过的东西。谢谢。我采纳了你的建议,找到了一种在使用第二种方法的同时强制执行固定长度列表的方法(通过巧妙地使用Django管理员)。事实上,我第一次尝试就是为了看到你警告过的东西。谢谢