查詢過濾我有這些模型:Django的,從模型法
def Foo(Models.model):
size = models.IntegerField()
# other fields
def is_active(self):
if check_condition:
return True
else:
return False
def Bar(Models.model):
foo = models.ForeignKey("Foo")
# other fields
現在我想查詢中有酒吧活躍Foo的是這樣的:
Bar.objects.filter(foo.is_active())
我收到錯誤,如
SyntaxError at/
('non-keyword arg after keyword arg'
我該如何做到這一點?
或者將您要過濾的值存儲在數據庫字段中,並在需要時進行更新(通常在保存時)。然後,您可以像對待其他字段一樣對其進行過濾/排序。 –
如果我重新使用方法查詢中的條件,我該如何保持DRY?我的方法對我們的業務邏輯非常重要,如果所說的邏輯發生變化,我無法承受我的方法打破。保持乾爽是非常重要的。 – Flowpoke
通過在python中執行它,您引入了潛在的性能弱點,因爲當您使用查詢過濾器時,它在數據庫級別完成,但是當您在Python級別上執行時通常會比較慢。 –