Python 如何覆盖用户模型

Python 如何覆盖用户模型,python,django,django-models,django-admin,Python,Django,Django Models,Django Admin,我不喜欢models.User,但我喜欢Admin视图,我会在我的应用程序中保留Admin视图 如何为模型加厚。用户? 使其看起来像以下内容: from django.contrib.auth.models import User class ShugeUser(User) username = EmailField(uniqute=True, verbose_name='EMail as your username', ...) email = CharField(ve

我不喜欢models.User,但我喜欢Admin视图,我会在我的应用程序中保留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 

现在这是不可能的。如果您只想使用电子邮件地址作为用户名,您可以编写一个检查电子邮件/密码组合是否正确而不是用户名/密码组合的脚本(“这是djangosippets.org中的一个示例”)


如果您想要更多,您必须非常糟糕地破解Django,或者等到Django更好地支持用户模型的子类化(根据Django用户邮件列表,它可能会在Django 1.2上出现,但不要指望它)。

这现在是不可能的。如果您只想使用电子邮件地址作为用户名,您可以编写一个检查电子邮件/密码组合是否正确而不是用户名/密码组合的脚本(“这是djangosippets.org中的一个示例”)


如果您想要更多,您必须非常糟糕地破解Django,或者等到Django更好地支持用户模型的子类化(根据Django用户邮件列表,它可能会在Django 1.2上出现,但不要指望它)。

上面的答案很好,我们在几个站点上成功地使用了它。我还想指出,尽管很多时候人们想要改变用户模型,但他们正在添加更多的信息字段。这可以通过contrib管理模块中的内置用户配置文件支持来实现

您可以使用用户对象的get_profile()方法访问配置文件


相关文档可用

以上答案很好,我们在多个网站上成功地使用了它。我还想指出,尽管很多时候人们想要改变用户模型,但他们正在添加更多的信息字段。这可以通过contrib管理模块中的内置用户配置文件支持来实现

您可以使用用户对象的get_profile()方法访问配置文件

相关文件可供查阅