如果可能的话,我希望能够通过 args 或 kwargs objects
,并且没有不必要的并发症。它看起来像Model.objects('something').all()
or Model.objects('something').order_by('field')
。我尝试__init__
为 AManager 进行自定义,但无法让它工作,所以它可能就像编写适当的__init__
函数一样简单。
我所做的是向自定义管理器添加一个方法,如下所示:
class AManager(models.Manager):
def example(self, arg):
self.example = arg
return self
class A(models.Model):
name = models.Charfield()
objects = AManager()
在此示例中,A.objects.example('name').all()
将返回通常A.objects.all()
的 ,当然,除非example('name')
以某种方式影响 QuerySet。我想要做的是避免像A.objects.custom_filter('name').another_filter('name')
我必须为每个链式过滤器包含重复的 arg 这样的事情。