更改默认auth_user表nam

2024-09-27 09:33:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我很满意django内置的user/auth,我只想添加一些字段并更改表名(主要是最后一个,我可以使用另一个表来定制字段)

所以我搜索了一下,显然我们可以使用Rename Django's auth_user table?上建议的子类

所以我必须启动一个新的应用程序并使用它的模型作为AbstractUser的子类,或者还有其他方法?(毕竟我只想用它的模型,应用程序的其他部分都没用)

总之,我创建了一个名为customuser的新项目/启动应用程序,在其模型中我有以下代码

客户用户/模型.py在

from django.db import models

from django.contrib.auth.models import AbstractUser
class customuser(AbstractUser):

    class Meta:
        swappable = 'AUTH_USER_MODEL'  
        db_table = 'customuser'

我运行makemigrations和migration。。。成功了

enter image description here

但是所有具有默认名称的表是在数据库中创建的,如下所示。。。我错过什么了吗?在

enter image description here


Tags: djangofrom模型importauth应用程序dbmodels
2条回答

要使用自定义用户模型,您需要在设置模块中设置^{}设置。在

请注意,您不需要设置swappable = 'AUTH_USER_MODEL'。这是一个没有文档记录的私有属性,最好不要碰它。在

坦白地说,如果你还可以这么做的话,我只需要启动一个新的应用程序。它在docs中说,这个决定最好是在开始你的项目之前做出的,因为它是一个痛苦的。。。很难。在

If you intend to set AUTH_USER_MODEL, you should set it before creating any migrations or running manage.py migrate for the first time.

否则,解决方案是从数据库中dumpdata,并手动调整它,以便转储文件中对user类的任何引用都将替换为新的user类。然后需要创建一些迁移来更改模式。在

所以这是可行的。从一个新的项目开始要简单得多。在

相关问题 更多 >

    热门问题