Django 1.5:用户和附加信息

7

我有一个基于Django auth的身份验证系统,但我需要向用户添加信息。在Django 1.5中,最好的方法是什么?(在1.4中,我使用与用户链接的profile,但现在呢?)

2个回答

10

Django 1.5有可扩展用户模型。基本上,你可以扩展一个抽象的基础用户模型,添加你自己的字段和任何内容,并从那里使用它。

基础模型仅包含身份验证的基础-密码字段和上次登录时间的字段。你甚至需要创建自己的用户名字段。如果你对类似于当前Django用户模型(具有用户名、名字、姓氏等)的东西感到舒适,它也存在于AbstractUser中,你可以扩展它而不是AbstractBaseUser并添加自己的字段。


1
是的,我在文档中看到了那个。但我不想实现一个AbstractBaseUser,因为我需要的已经在User中了。我只需要添加一些东西。那么,如何编写代码呢? - tapioco123
用户基本上与AbstractUser相同,但具有可交换属性(无论是什么)。https://github.com/django/django/blob/master/django/contrib/auth/models.py#L457。因此,只需使您自己的模型继承自AbstractUser即可。 - justinas
我继承了代码,但在同步数据库时出现以下错误:CommandError: 一个或多个模型未通过验证: account.user: m2m字段'groups'的访问器与相关的m2m字段'Group.user_set'冲突。在“groups”的定义中添加related_name参数。 account.user: m2m字段'user_permissions'的访问器与相关的m2m字段'Permission.user_set'冲突。在“user_permissions”的定义中添加related_name参数。 auth.user: m2m字段'groups'的访问器与相关的m2m字段'Group.user_set'冲突。在“groups”的定义中添加related_name参数。 - tapioco123
你是否按照要求完成了所有步骤,比如设置AUTH_USER_MODEL配置项,并将你的关系指向AUTH_USER_MODEL而不是Django auth用户模型? - justinas

0

在哪里说扩展用户模型与“配置文件”已被弃用?“开发”Django文档和1.7文档都将此作为第一解决方案,并且AUTH_USER_MODEL带有一些相当严重的警告和影响... - GreenAsJade
AUTH_PROFILE_MODULE 已经在 Django 1.5 中被弃用 - dgel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接