【发布时间】:2014-07-23 02:29:34
【问题描述】:
在 Django 中如何识别模型关系动词?
所以,假设我有一个模型 Movie,并且想要 Director 和 Writer 的字段。我不想为这些角色创建两个不同的表,如下所示:
...因为它违反了数据库最佳实践(正常形式等),并且不会保持干燥。相反,我想要一个 Person 模型,通过 ManyToMany 与 Movie 的关系,如下所示:
如何允许在运行时指定这些以菱形标记的动词?
例如,在 Django Admin 中,Movie 应该有一个 Person 字段,并有一些地方可以输入 Role,例如written by 或 directed by。我不想在Movie 中为每个可能的角色设置字段:例如,我不想要director 或writer 或animal_trainer 字段。可能有数百个......其中一些是重复的。
在 Rails 中,我只是创建一个带有额外字段 Role 的连接表,但我认为 Django 有更好的方法。
我确定这在 Django 文档中的某处进行了记录,或者可能只是在某处的一般 SQL 文档中,但我想我不知道 Google 的正确搜索词。如果存在相关文档的链接就足够了。谢谢!
【问题讨论】:
-
我很确定您需要第三张表来说明人和电影之间的关系,例如(“导演”、“演员”、“作者”、“关键握把”等)
Table("movie_role",["movie","person","role"])类型的东西 -
你的意思是像一个连接表?
标签: python sql database django model