【问题标题】:Django different model manager on foreign key外键上的 Django 不同模型管理器
【发布时间】:2016-03-03 23:45:41
【问题描述】:

我有模型用户。有两个管理器,过滤由 is_active 设置的查询的 UserManager 和 AllUserManager。 默认管理器设置为 UserManager。

用户拥有另一个模型的外键,名为 Address,related_name='users'。

问题是下一个。当 User is_active 为 False 时,Address 不会在 users 集合中显示非活动用户。

是否有可能以某种方式将 AllUserManager 设置为某些 FK 的默认管理器?我希望能够列出地址中的所有用户,无论他们的活动如何。

【问题讨论】:

    标签: django django-models django-database


    【解决方案1】:

    您可以在查询中specify which manager to use。如果all_users = AllUserManager() 那么:

    # address is instance of Address
    address.users(manager='all_users').all()
    

    另外,如果all_users 是默认管理员,您可以在AllUserManagerset use_for_related_fields = True

    【讨论】:

    猜你喜欢
    • 2016-05-05
    • 2012-05-28
    • 1970-01-01
    • 2011-11-25
    • 1970-01-01
    • 2021-04-05
    • 1970-01-01
    • 2019-06-21
    • 2020-11-26
    相关资源
    最近更新 更多