如何在Django中将默认用户数据迁移到自定义用户模型

时间:2019-01-13 06:51:33

标签: django

由于要自定义Django用户模型,我从默认用户模型迁移到了自己的自定义用户模型。由于我的Django项目很久以来一直在工作,因此我需要保留现有的用户数据。

我当时想手动移动它们,但是Django默认用户模型的密码是隐藏的。如何安全地将现有用户数据移至我的自定义用户模型?

2 个答案:

答案 0 :(得分:1)

移动到CustomUserno easy task in Django。如果要保留现有数据,则根据票证#25313,需要执行以下步骤:

  1. 创建一个与auth.User相同的自定义用户模型,将其命名为User(许多表保持相同的名称)并设置db_table='auth_user'(因此使用相同的表)。
  2. 放弃所有应用程序的所有迁移(迁移文件夹中的__init__.py文件除外)。
  3. 重新创建一组新的迁移(使用python manage.py makemigrations)。
  4. 备份数据库。
  5. 从数据库的 django_migrations 表中删除所有条目。
  6. 伪造一组新的迁移(使用python manage.py migrate --fake)。
  7. 可选:设置db_table="your_custom_table"或将其完全删除。
  8. 对自定义模型进行其他更改,生成迁移,然后应用它们。

答案 1 :(得分:0)

您可以使用dumpdata命令转储现有模型数据,还可以使用loaddata命令将那些数据重新加载到该模型或更改后的自定义模型。这是一个很好的例子,说明您如何做到这一点。 link