2014-01-10 60 views
0

我在Django 1.6如何扩展/覆盖UserManager

在我的应用程序中,我希望有一个用户对象和一个单独的配置文件对象。我想避免实现一个自定义的用户对象,而只是使用一个一对一的关系模型,其中包含所有额外的字段/我想要的信息。

每当我对用户对象执行查询时,90%的时间我都想要检索这个配置文件对象。我的想法是,最好的方法是修改默认UserManager的get_queryset方法,以通过“select_related”调用来始终检索此相关对象。

有没有办法做到这一点?

在这个问题上搜索是我能找到的唯一资源。
Override Django User Manager to only return active users in queries
我需要这样做吗?我能否以某种方式使用基本的用户对象?

在此先感谢。

+1

90%仍然不是100%。只在需要时使用select_related,而不是默认的 – yuvi

回答

2

由于Django 1.5,您可以创建custom user model。这消除了user_profile的需要。

+0

是的,我知道这一点。正如它在“模型设计注意事项”中的文档中提到的那样 - “在处理与定制用户模型中的身份验证不直接相关的信息之前仔细考虑......”我主要担心可能会干扰其他应用程序。这种担忧是没有根据的吗? –