1
我最近將一個django項目從mysql遷移到了postgresql,並在該過程中破壞了正在使用的過濾器。舊的過濾器是這樣的:在使用布爾作爲django中的過濾器時遇到困難
return (model_class.objects.filter(status='0',ir=1).count() * 2) +
model_class.objects.filter(status='1',ir=1).count()
然而,現在產生了一條錯誤:
DatabaseError at /report/trip/publication
operator does not exist: integer = boolean
LINE 1: ...AND "publication"."ir" = true)
^
HINT: No operator matches the given name and argument type(s).
You might need to add explicit type casts.
我試過設置IR =「1」,而我甚至試過設置它到'3'(爲什麼地獄不是?),但不管我設定了什麼,它都會拋出同樣的錯誤信息,這似乎意味着別的東西正在激化它。我確實將它設置爲「返回無」,這給了我一個未經過濾的列表。唯一可能的衝突,我可以看到的是,有一個聲明往上頂,但它不應該是一個問題(這是不是之前):
class Publication(Unit):
ir = models.BooleanField(default=False,null=False,verbose_name="Is IR")
我的Postgres數據庫具有以下數據類型以下字段:
status | character varying
ir | integer
不用說,我非常困惑。我沒有設置 - 我只是試圖修復它(並在過程中學習)。過濾這個的正確方法是什麼?對於任何反饋,我們都表示感謝。