Django正在为Postgres生成无效的SQL

2024-09-30 20:24:31 发布

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

我是一个noobdjango用户,我在Model.objects.all方法。 我有一个用户模型: (我知道明文保存密码是不好的做法,但这只是一个有趣的例子)

class UsersModel(models.Model):
    password = models.CharField(max_length=MAX_PASSWORD_LENGTH)
    user = models.CharField(max_length=MAX_USERNAME_LENGTH, primary_key=True)
    count = models.IntegerField()

我有一个测试方法可以删除用户表中的所有条目:

^{pr2}$

因为某种原因,打电话用户模型.objects.all()引发错误

DatabaseError: column "cs169proj1_usersmodel.user" must appear in the GROUP BY clause or 
be used in an aggregate function
LINE 1: SELECT "cs169proj1_usersmodel"."user", "cs169proj1_usersmode...

从google上,我发现SQL中的这个特殊错误只有在Postgresql(我正在使用的)上才会出现。有人知道怎么解决这个问题吗?在


Tags: 用户模型modelobjectsmodels错误alllength
2条回答

我在用postgresql从django1.6升级到1.9.8时遇到了类似的问题。在

在我的例子中,这个问题是由于django1.9中的更改导致的,至少需要postgresql9.1,如here所述。在

redhat/centoshere的postgresql更新指令。在

听起来列名count被误解为aggregate function。在

最佳解决方案:永远不要使用reserved words作为标识符。在

相关问题 更多 >