我正在努力让我的Django应用程序中的所有忠实客户。为此,我试图使用方法而不是属性来过滤查询集,我不知道如何做到这一点。
编辑:使用Kedar建议,我尝试使用@property
装饰器
class Client(models.Model):
@property
def is_loyal(self):
# ...
# Return True or False
@classmethod
def get_loyal_clients_since(cls):
# Method #1: works but clearly a workaround
base_clients = cls.some_method_to_retrieve_special_clients()
clients_list = [c.pk for c in base_clients if c.is_loyal()]
clients = cls.objects.filter(pk__in=clients_list)
# Method #2: does not work
clients = cls.some_method_to_retrieve_special_clients() \
.filter(is_loyal=True)
错误:Cannot resolve keyword 'is_loyal' into field.