Python 有没有办法在Django模型中使用类似单词的字段?

Python 有没有办法在Django模型中使用类似单词的字段?,python,django,django-models,django-model-utils,Python,Django,Django Models,Django Model Utils,假设,我正在制作一个电影分级应用程序。登录的用户应该能够对电影进行明星评分(范围为1到5) 我想快速访问所有评分员的姓名以及他们的评分。 如果用户再次对电影评分,则应更新评分。同时,如果用户决定撤销其评级,即提供零评级,我希望从字段中删除该条目 我相信字典将是实现同样目标的最佳选择。不过,我愿意听取建议 我还想让用户看到他/她与评级一起评级的所有电影 您可以在django ORM中使用:update_或_create()方法。 如果您使用的数据库是Postgres,那么您可以使用您应该在用户模型

假设,我正在制作一个电影分级应用程序。登录的用户应该能够对电影进行明星评分(范围为1到5)

我想快速访问所有评分员的姓名以及他们的评分。 如果用户再次对电影评分,则应更新评分。同时,如果用户决定撤销其评级,即提供零评级,我希望从字段中删除该条目

我相信字典将是实现同样目标的最佳选择。不过,我愿意听取建议


我还想让用户看到他/她与评级一起评级的所有电影

您可以在django ORM中使用:update_或_create()方法。

如果您使用的数据库是Postgres,那么您可以使用

您应该在用户模型和投票模型之间创建一个ForeignKey字段。仅允许每个用户进行一次投票;对于每部电影,您可能希望在投票模型上创建一个针对userid和movieid的唯一密钥约束

然后,投票应该包含与电影的关系和评级。若用户撤回其投票,则将其从数据库中删除

使用字典会给你带来问题,因为你会有多部电影


要提高计票速度和性能,您可能需要查看缓存,只需缓存投票数,并在用户每次在特定电影上添加/取消投票时更新投票数。

您是否检查了Django型号的星级,并使用单个模板标记

我不能推荐JSONField,因为多个用户可能希望同时对一部电影进行投票,数据库将不得不一次又一次地重写该值,同时锁定对一部电影的投票。这肯定是一个瓶颈。@Iwan1993我认为你最好使用单独的模型进行用户投票和评分。在这种情况下,你是对的,建模这肯定是最好的方式