【发布时间】:2021-10-11 08:03:42
【问题描述】:
我有一个具有两个属性的模型
class Player(models.Model):
username = models.CharField(max_length=200, unique=True)
score = models.CharField(max_length=50)
我希望分数保持为 CharField,但现在我想通过这样的简单查询来平均所有玩家的分数
Player.objects.aggregate(Avg('score'))
这不起作用,因为“score”是一个 CharField,需要先转换为浮点数。我如何进行动态类型转换?提前谢谢你。
【问题讨论】:
-
为什么
score是CharField,而不是IntegerField/FloatField?将其转换为数字对于数据库来说会非常昂贵,因为将string解析为int并不是那么快。 -
我在游戏后期才加入这个项目,我不确定,但我认为这与 pymongo 不喜欢这些类型有关。现在,我需要实现一个简单的功能,稍后我会在了解该更改的含义时解决该问题。谢谢
标签: python-3.x django django-models