我有模特
class QuerySetManager(models.Manager):
def get_query_set(self):
return self.model.QuerySet(self.model)
class Post(models.Model):
objects = QuerySetManager()
STATUS = (
(1, 'PENDING'),
(2, 'ACTIVE'),
)
title = models.CharField(max_length=512,blank=False,null=True)
status = models.IntegerField(default=1,choices=STATUS)
class QuerySet(models.query.QuerySet):
def active(self):
return self.filter(status=2)
当我尝试以这种方式访问时
Post.objects.active().filter(other_condition='xxx').all()
它抛出错误'QuerySetManager' object has no attribute 'active'
任何人都可以帮我实现这个目标吗?
答案 0 :(得分:0)
我无法理解你在这里所做的一切。让管理员使用相同的方法返回查询集的方法是使用as_manager
classmethod。
class PostQuerySet(models.QuerySet):
def active(self):
return self.filter(status=2)
class Post(models.Model):
objects = PostQuerySet.as_manager()