Django:你如何从经理内部访问模型的实例?

oro*_*aki 2 django django-models django-managers

class SupercalifragilisticexpialidociousManager(models.Manager):
    # Sorry, I'm sick of Foo and Spam for now.
    def get_query_set(self, account=None):
        return super(SupercalifragilisticexpialidociousManager,
                     self).get_query_set().filter(uncle=model_thats_using_this_manager_instance.uncle)
Run Code Online (Sandbox Code Playgroud)

我正在寻找的魔法是"叔叔= model_thats_using_this_manager_instance.uncle".看起来我应该能够以某种方式做到这一点.我知道我可以说self.model要获得模型,但如何获取实例?

Dan*_*man 6

当你使用经理时,要求一个实例是没有意义的.管理器是类级属性 - 如果你尝试并且在foo.objects.all()哪里做fooSupercalifragilisticexpialidocious的实例,你将明确地得到一个错误:

AttributeError: Manager isn't accessible via Supercalifragilisticexpialidocious instances
Run Code Online (Sandbox Code Playgroud)