django 迁移文件,django无法生成迁移文件
如果在第一次迁移时没有在django中配置AUTH_USER_MODEL(用来告诉django认证系统识别我们的自定义模型类),应该怎么做才能使djang _ wx 62 aae 4 be 59 a 4的技术博客_博客
如果在第一次迁移时没有在django中配置AUTH_USER_MODEL(用来告诉django认证系统识别我们的定制模型类),应该做什么来使Django
Django认证系统中提供的用户模型类和方法非常方便。我们可以使用这个模型类,但是有些字段不能满足项目的要求。例如,需要保存用户的手机号码,需要在模型类中添加额外的字段。
django提供了Django . contrib . auth . models . abstract user用户抽象模型类,允许我们继承和扩展字段来使用Django认证系统的用户模型类。
我们可以在apps中创建Django应用程序用户,并在配置文件中注册用户应用程序。
在创建的应用程序模型中定义用户的用户模型类
从django.contrib.auth.models导入AbstractUser
不继承django提供的用户,而是继承其父类AbstractUser
类用户(AbstractUser):
用户模型类
mobile=models . charfield(max _ length=11,unique=true,verbose _ name=移动电话号码)
类别元:
数据库表= ly _用户
Verbose_name= user
verbose _ name _ plural=verbose _ name我们定义的用户模型类不能被Django的认证系统直接识别,所以我们需要通知Django的认证系统使用我们在配置文件中定制的模型类。
在配置文件中设置。
AUTH_USER_MODEL=users。用户
的参数设置由“点”分隔,即“应用程序名称”。模型类名`注:Django建议,AUTH_USER_MODEL参数的设置必须在第一次数据库迁移前设置,否则后续使用中可能会出现未知错误。
非首次迁移时配置AUTH_USER_MODEL的解决方案:
0.首先导出现有数据库进行备份,然后清除数据库中的所有数据表。选择表,然后右键单击将数据转储到文件- sql插入以导出sql语句。
1.删除除__init__之外的所有迁移文件。py,位于开发人员创建的所有子应用程序的迁移目录下,只要它们涉及用户。
2.删除除__init__之外的所有迁移文件。django . contrib . admin . migrations目录中的py。
3.删除除__init__之外的所有迁移文件。django.contrib.auth.migrations目录中的py。
4.删除除__init__之外的所有迁移文件。py放在reversion.migrations目录中。
5.删除除__init__之外的所有迁移文件。xadmin.migrations目录中的py。
6.接下来,执行数据迁移并检查步骤0中的数据。如果以后要修改用户相关数据,不需要重复这个操作,直接迁移数据即可。
7.将导出的sql语句重新插入表中,
-
签名:代码过万,键盘坏了!
如果你觉得这篇文章对你帮助不大,记得“推荐”一下。在此感谢!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。