如何根据lambda表达式结果过滤Django模型?

nem*_*ixx 0 django filter django-models

我知道我可以使用python自己的功能工具集,但我希望在Django中有一种方法.

我有这个型号:

class AssetGeoFenceEvent(models.Model):
#...
#assets, for which this event is assigned
asset = models.ForeignKey(Asset)
#...
Run Code Online (Sandbox Code Playgroud)

并且引用的Asset模型如下:

class Asset(models.Model):
#...
client = models.ForeignKey(Client)
#....
Run Code Online (Sandbox Code Playgroud)

我以为我能做到:

#get all the registered events for this client
events = AssetGeoFenceEvent.objects.filter(asset.client == client)
Run Code Online (Sandbox Code Playgroud)

但是失败了,错误:

关键字不能是表达式

试过这个,但它失败了:

#get all the registered events for this client
events = AssetGeoFenceEvent.objects.filter(lambda a: a.client == client)
Run Code Online (Sandbox Code Playgroud)

这给了我一个错误

'function'对象不可迭代

那么我怎么能用Django来解决这个问题呢?

Ign*_*ams 6

你做错了.

events = AssetGeoFenceEvent.objects.filter(asset__client=client)
Run Code Online (Sandbox Code Playgroud)