我有几节课:
class Person(models.Model):
address = models.ForeignKey(Address, on_delete=models.CASCADE)
class Address(LiveModel):
address = models.CharField(max_length=512)
some_manager = SomeManager()
some_other_object_manager = OtherManager()
class Meta:
base_manager_name = 'some_other_object_manager'
因为我设置了some_manager
,所以使用的默认管理器是SomeManager
,这很好。但是,如果我要查询Person
,我希望它使用Address
的{{1}}管理器进行查询,并且我认为通过设置OtherManager
,我将能够实现此(https://docs.djangoproject.com/en/2.2/topics/db/managers/#using-managers-for-related-object-access)。不幸的是,这不起作用。有任何想法吗?特别是我想在管理员中实现这一点,如果那有所作为的话。
答案 0 :(得分:0)
澄清一下,这确实可以正常工作。这里的问题很详细。我使用的是Django admin,它不按我期望的方式查询相关字段。实际上,它为default manager
使用了相关字段queryset
。如果您想做我想做的事情,这是一个很好的简单示例:https://books.agiliq.com/projects/django-admin-cookbook/en/latest/filter_fk_dropdown.html