我有一个理解问题:
我想为我的页面创建用户配置文件,它有很多属性。但是由于我是 django 的 auth 用户模型的新手,我不知道我是否可以使用我为用户配置文件设置的新属性来扩展该模型。例如地址、年龄、……
如果不是,为什么用户模型在那里?它仅用于身份验证目的吗?我如何处理和区分这两个用户模型?
示例案例:
用户想登录,我用 auth 的用户模型检查权限并在 django 的用户模型和我的之间设置一些关系?我在这里有点困惑
最佳答案
我尽量从pre-django 1.5的角度来解释
django 的身份验证模型为您提供了一组“方便”的方法,如登录、注销、密码重置等,它们可以无缝地工作。拥有更多字段是一种非常常见的情况 - 因此一种方法是创建一个用户配置文件模型,该模型继承
来自django auth用户模型,或者具有OneToOne
同上的关系。这样,您就不必重新实现一些已经实现的功能。此外,包中还有 groups
和 permissions
模型,它们在用户权限方面添加了一整层功能。
例子:
from django.contrib.auth.models import User
class MyCustomProfile(User):
#inherits all the attributes of default `User` models
#additional models here.
或
from django.contrib.auth.models import User
class MyCustomProfile(models.Model):
user = models.OneToOneField(User)
#additional models here.
这样,您就可以使用所有功能并在此基础上进行构建。
这在 django-1.5 中有一点改变,它允许用户拥有自定义字段,这使您无需在现有的 User
模型之上创建 UserProfile
模型.
关于python - Django 用户模型——我什么时候需要它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17240112/