我想获取相关的对象引用并且我想使用自定义管理器。
外面有东西吗?我如何使用自定义管理器来获取这些对象?
b.entry_set.all()
例如
b.custom_manager.entry_set.all()
b.entry_custom_manager_set.all()
最佳答案
自 Django 1.7 以来,这已经成为可能。假设您有一个模型 Entry
有两位经理:
class Entry(models.Model):
blog = models.ForeignKey('Blog', on_delete=models.CASCADE)
...
objects = models.Manager() # Default Manager
entries = EntryManager() # Custom Manager
然后你可以通过传递manager
来控制你使用哪个管理器至 entry_set
:b = Blog.objects.get(id=1)
b.entry_set.all() # implicitly use the default manager
b.entry_set(manager='objects').all() # explicitly use the default manager
b.entry_set(manager='entries').all() # explicitly use the entries manager
请参阅 using a custom reverse manager 上的文档了解更多信息。
关于django - 与自定义管理器相关的对象引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16301532/