- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我见过两种在 Django 中扩展用户模型的方法。
方法一:
class User(AuthUser):
new fields...
方法二:
class MyUser(models.Model):
user = models.OneToOneField(User)
new fields...
它们有什么区别?
最佳答案
第一个是multi table inheritance . (我假设你实际上是在说 django.contrib.auth.models.User 在这里)。您的新用户模型将具有 Django 用户模型中定义的所有字段。这是由 django 管理的,在您的模型上隐式创建一个 OneToOneField。
第二种,您自己创建 OneToOneField。现在 django.contrib.auth.model.User 模型的字段不会自动显示为您自己的模型的一部分。您仍然可以访问它们作为
myinstance.user.parent_field
综上所述,对于选项 1 you should inherit from an abstract base class而不是直接来自用户模型。
class MyUser(AbstractBaseUser):
...
关于python - 在 Django 中创建自定义用户模型时,从 models.Model 和 AuthUser 继承有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41867534/
我是一名优秀的程序员,十分优秀!