请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

创建超级用户失败报错"Data too long for column 'gender' at row 1")

createsuperuser, 输入用户名,邮箱,密码之后提示以下错误
图片描述
使用的是anaconda3下创建的py2.7虚拟环境,django1.9版本
代码中唯一使用了gender的字段是在user的models中, UserProfile的gender字段,已经将其长度改成了10然而依然报这个错误。

麻烦老师看看是什么问题,如何解决,谢谢。

正在回答 回答被采纳积分+3

2回答

提问者 nankjune 2019-06-23 21:19:41

已解决。

发现makemigrations以后,user 目录下migration文件中产生了很多auto文件,我每makemigrations一次,就增加一个,而0001 initial文件没有改变, 同时数据库也没有改变。

于是我进行了以下步骤

  1. 将auto文件都删掉了,之留下了0001_initial,

  2. 手动修改了0001_initial中gender的数据长度

  3. 再次makemigrations

  4. 没有报错,于是migrate

  5. 完成后在数据库中审查,发现长度依然没变,于是继续手动修改数据库中的字符长度

  6. createsuperuser 输入用户名邮箱密码,没有报错~

  7. 完成


0 回复 有任何疑惑可以回复我~
  • bobby #1
    这里一般initial是第一次做migrations生成的文件,后面没做一次修改都会有一个auto的py文件生成,不会修改之前的文件的,如果每次都是通过model和migrations修改数据库而不是手动去通过navicat修改数据库的话 是不会造成这个地方出错的
    回复 有任何疑惑可以回复我~ 2019-06-26 12:38:26
Ethreal 2019-06-23 20:17:36

你是怎么改的这个字段呢?是直接该的数据库还是通过数据库迁移命令 make miration make migrate 呢  对数据库做任何修改的操作 都要通过orm进行同步 

0 回复 有任何疑惑可以回复我~
  • 提问者 nankjune #1
    是通过ORM 改的,修改了models里的长度, 然后makemigrations, migrate。
    回复 有任何疑惑可以回复我~ 2019-06-23 20:33:04
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信