4

私は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()

そして、ユーザーテーブルのすべてのエントリを削除することになっているテストメソッドがあります。

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(私が使用している)でのみ発生することがわかりました。誰もがこれを回避/修正する方法を知っていますか?

4

2 に答える 2

5

列名が集計関数countと誤解されているようです。

最善の解決策:予約語を識別子として使用しないでください。

于 2013-02-11T06:35:00.013 に答える