我的数据库中有用户表,它们可以是活动的或非活动的。如果我只想查询活动用户,我会定义一个如下所示的代理模型。
class User(models.Model):
name = models.CharField(max_length=50)
location = models.CharField(max_length=50)
active = models.BooleanField()
class UserActive(models.Manager):
def get_queryset(self):
return super(UserActive, self).get_queryset().filter(active=True)
class ActiveUser(User):
objects = UserActive()
class Meta:
proxy = True
然后通过使用 ActiveUser,我可以只对活动用户进行计算/统计。
问题是,我需要同时定义 UserActive 和 ActiveUser 类,这对我来说似乎很尴尬。因为对于每个主类(在本例中是 User),我们需要定义另外两个类。想象一下我们还有其他几个模型需要实现 Proxy,代码看起来会很乱。我可以知道我们是否可以有更优雅的方式?
谢谢亚历克斯