python - Django 用户模型——我什么时候需要它?

标签 python django django-models django-users

我有一个理解问题:

我想为我的页面创建用户配置文件,它有很多属性。但是由于我是 django 的 auth 用户模型的新手,我不知道我是否可以使用我为用户配置文件设置的新属性来扩展该模型。例如地址、年龄、……

如果不是,为什么用户模型在那里?它仅用于身份验证目的吗?我如何处理和区分这两个用户模型?

示例案例:
用户想登录,我用 auth 的用户模型检查权限并在 django 的用户模型和我的之间设置一些关系?我在这里有点困惑

最佳答案

我尽量从pre-django 1.5的角度来解释

django 的身份验证模型为您提供了一组“方便”的方法,如登录、注销、密码重置等,它们可以无缝地工作。拥有更多字段是一种非常常见的情况 - 因此一种方法是创建一个用户配置文件模型,该模型继承来自django auth用户模型,或者具有OneToOne同上的关系。这样,您就不必重新实现一些已经实现的功能。此外,包中还有 groupspermissions 模型,它们在用户权限方面添加了一整层功能。

例子:

 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/

相关文章:

python - 无法在张量板上可视化图形

mysql - Django 中的外键约束错误

django - 在 Django 中创建模板时迭代模型属性

python - Django:获取自某个日期以来第 25 次过去的次数

python - django 如何生成此 SQL?

python - 如何使用 matplotlib 将半极坐标图设置为北

python - 如何在Django中的get_context_data中获取具有相同参数的每个字段的计数的数组?

python - 如何使用 Tastypie 在 Python (Django) 中基于 DateTimeField 范围过滤对象

python - Django中的多态模型继承

python - Pandas 中的插值水平独立于每行