我不喜欢models.User,但我喜欢Admin视图,我会在我的应用程序中保留管理视图。
如何覆盖模特。用户? 让它看起来像下面这样:
from django.contrib.auth.models import User
class ShugeUser(User)
username = EmailField(uniqute=True, verbose_name='EMail as your
username', ...)
email = CharField(verbose_name='Nickname, ...)
User = ShugeUser
答案 0 :(得分:4)
现在不可能。如果你想要的只是使用电子邮件地址作为用户名,你可以写一个custom auth backend来检查电子邮件/密码组合是否正确而不是用户名/密码组合(here的一个例子来自djangosnippets.org)。
如果你想要更多,你必须非常糟糕地破解Django,或者等到Django更好地支持用户模型的子类化(根据django-users邮件列表上的this conversation,它可能发生在就像Django 1.2,但不要指望它。)
答案 1 :(得分:0)
上面的答案很好,我们成功地在几个网站上使用它。我还要指出,虽然很多时候人们想要更改用户模型,但他们正在添加更多信息字段。这可以通过contrib管理模块中的内置用户配置文件支持来实现。
您可以使用User对象的get_profile()方法访问配置文件。
相关文档可用here.