在五年级时,我们学习了如何概述研究论文,我们的老师告诉我们,您永远都不能有一个要点。我觉得自己违反了这条规则,也许会有更好的方法。
我有模型,Movie
其中的字段如title
和year
。我也想包括在内genre
。但是,电影可以分为多种类型。所以我觉得我需要建立多对多关系。但我并不是真的想让Genre
它成为自己的模型类,因为只会有一个字段Genre.genre
。对我来说似乎是错的。我知道我可以将流派设置为CharField并使用某种分隔符“ sentinel”来分隔流派action|adventure|comedy
。但这是最好的方法吗?
我打算对该数据库运行原始SQL查询,因此,简单性现在具有很高的价值。
对于具有单个属性的模型,没有质量的一般规则。由于电影可以具有不止一种类型,并且流派显然可以属于不止一部电影,ManyToMany
因此在这里,恋爱关系可能是您最好的镜头。
一种替代方法是genres
TextField
在模型中添加一个,然后将所有流派保存为以逗号分隔的列表。在这种方法的许多明显问题中,有一个事实是您将无法按类型有效地查询电影,并且不能保证同一类型在两个不同的电影实例中不会被不同地书写。
如果你正在使用PostgreSQL的,另一种选择是定义genres
为一个ArrayList中的CharField
秒。用每种可能的类型定义一个常数,并将其传递给您CharField
的选择。
COMEDY = 'COMEDY'
ADVENTURE = 'ADVENTURE'
ACTION = 'ACTION'
# ...
GENRE_CHOICES = (
(COMEDY, 'Comedy'),
(ADVENTURE, 'Adventure'),
(ACTION, 'Action'),
# ...
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句