我是noob django用户,我在使用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()
我有一个测试方法,它应该删除用户表中的所有条目:
def function(self):
UsersModel.objects.all().delete()
出于某种原因,调用UsersModel.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...
从谷歌搜索,我发现SQL中的这个特殊错误只出现在Postgresql(我正在使用)上。任何人都知道如何解决/解决这个问题?
答案 0 :(得分:4)
将列名称 count
错误解释为aggregate function。
最佳解决方案:切勿使用reserved words作为标识符。
答案 1 :(得分:2)