django - 与自定义管理器相关的对象引用

标签 django django-models django-orm

我想获取相关的对象引用并且我想使用自定义管理器。

外面有东西吗?我如何使用自定义管理器来获取这些对象?

 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/

相关文章:

python - 使用 Pytest 和 Mock 测试查询数据库的 View

python - Django 和 python - 使用变量值作为模型名称

python - 如何使用 Django 过滤一对一的通用关系?

python - 有权在 Django 管理中仅修改模型的一个字段的用户

Django MultiValueField - 如何将选择传递给 ChoiceField?

python - django.db.utils.OperationalError : near "񐁂򐁇N": syntax error

python - 使用 Django ORM 指定带有 UNION 的 SELECT 中的列顺序

Django 现在在 Heroku 中与 ASGI + WSGI 合作

python - 我怎样才能跟随一个 Django 反向外键,然后跟随另一个反向外键?

django - 我可以轻松地覆盖 Django ORM 'iexact' 以使用 LOWER() 而不是 UPPER() 吗?