【发布时间】:2013-04-24 11:17:01
【问题描述】:
我想获取相关的对象引用,我想使用自定义管理器。
外面有东西吗?如何使用自定义管理器来获取这些对象?
b.entry_set.all()
例如
b.custom_manager.entry_set.all()
b.entry_custom_manager_set.all()
【问题讨论】:
标签: django django-models django-orm
我想获取相关的对象引用,我想使用自定义管理器。
外面有东西吗?如何使用自定义管理器来获取这些对象?
b.entry_set.all()
例如
b.custom_manager.entry_set.all()
b.entry_custom_manager_set.all()
【问题讨论】:
标签: django django-models django-orm
此功能的票似乎仍处于打开状态https://code.djangoproject.com/ticket/3871
【讨论】:
从 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 上的文档。
【讨论】: