【问题标题】:How make Django's auth app use my custom model "User"如何让 Django 的身份验证应用程序使用我的自定义模型“用户”
【发布时间】:2014-06-05 03:38:43
【问题描述】:

您好,我是 Django 的新手,我正在制作一个存储大量用户信息的应用程序。但是 django 的 auth 应用程序只存储了一些关于用户的信息。有什么方法可以创建我自己的模型“用户”并让 Django 的身份验证应用程序使用这个模型。谢谢。

【问题讨论】:

    标签: django django-models


    【解决方案1】:

    自 Django 1.5 起就已支持此功能,并在 the documentation 中进行了全面介绍。

    基本上,您需要继承 auth.models.AbstractUser,并将 AUTH_USER_MODEL 设置设置为指向您的新模型。

    【讨论】:

    • 如果我在我的应用程序中创建一个模型“用户”,该模型是 auth.models.AbstractUser 的子类,那么它将以与身份验证用户相同的方式使用。我的意思是我可以做类似request.user.city
    • 是的,这就是重点,只要您设置 AUTH_USER_MODEL。
    【解决方案2】:

    您可以使用UserProfile 模型解决您的问题。并且您可以将用户额外信息与 onetone 或 ForeignKey 与唯一属性字段的关系存储在其中。

    Django user profile

    【讨论】:

      【解决方案3】:

      U可以多表继承用户模型

      from django.contrib.auth import User
      
      class MyUser(User):
      //add ur required fields
      

      Reference 用于继承。

      【讨论】:

        猜你喜欢
        • 2012-05-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-10
        • 2021-01-09
        相关资源
        最近更新 更多