Django扩展用户模型调用方法后更改无法保存到数据库
Django扩展用户模型调用方法后更改无法保存到数据库
嘿,我仔细瞅了你的代码,问题出在一个超容易忽略的小细节上!
你定义access字段的时候写成了:
access = models.BooleanField
这里少了关键的一对括号(),正确的写法应该是:
access = models.BooleanField(default=False)
不带括号的话,你其实是把BooleanField这个类本身赋值给了access属性,而不是创建这个字段的实例——这就导致数据库里根本没正确生成这个字段,自然不管你怎么调用access_update方法,都没法把更改永久保存下来。
接下来按这几步修复就行:
- 把字段定义改成带括号的形式(建议加上
default参数,避免初始化时出现无默认值的问题) - 运行
python manage.py makemigrations生成迁移文件 - 再运行
python manage.py migrate把更改同步到数据库
之后你再去shell里测试调用access_update(True),下次打开shell查看的时候,更改应该就能永久保存啦!
备注:内容来源于stack exchange,提问作者Dano_R
相关产品推荐
相关产品推荐

