我是noob django用戶,並且在Model.objects.all方法中遇到了一些麻煩。 我有一個用戶模型: (我知道保持在密碼明文是不好的做法,但是這僅僅是應該是一個玩具的例子)Django爲Postgres生成無效SQL
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()
而且我已經得到了是應該的測試方法刪除所有條目在user表:
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...
從圍棋ogling,我發現SQL中的這個特定錯誤只出現在Postgresql(我正在使用)上。任何人都知道如何解決/解決這個問題?
您對此型號有定製經理嗎? – 2013-02-11 06:28:18
我不認爲這是錯誤的原因,但在使用除id之外的其他東西作爲primary_key時應該小心。它可能會導致管理網站的麻煩:請參閱http://stackoverflow.com/q/2011629/117092 – luc 2013-02-11 06:41:18
修復它!我刪除並重新創建了數據庫,然後運行manage.py syncdb。不知道它是什麼,但現在已經消失了。 – sfendell 2013-02-11 07:31:56