Django:对于固定长度。模型列表关系,是否可以在父模型中使用固定数量的OneToOneField,而不是在子模型中使用FK?

2024-10-01 17:28:57 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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并通过表单验证来强制执行长度?我在想,政府可能会更干净,第一种方式,就是明确你一周中的哪一天在编辑。你知道吗

谢谢


Tags: 方法应用程序modelmodels菜单etcclassmonday
2条回答

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

我永远不会用你的第一选择。最后你会到处重复你自己,为每个工作日运行一段特定的代码。第二种选择将产生更好的代码。你知道吗

相关问题 更多 >

    热门问题