Mic*_*kis 4 python django monkeypatching
我最近在业余时间开始尝试使用Django来处理一些Web应用程序.在为一个设计数据模型时,我遇到了使用继承来定义网站用户或使用已经由框架提供的User类进行猴子修补的技术的困境.
我尝试通过(根据以下方式定义了所有模型等而没有错误python manage.py validate)添加字段:
User.add_to_class('location', models.CharField(max_length=250,blank=True))
并执行了syncdb命令.但是,我一直收到这个错误
OperationalError:没有这样的列:auth_user.location
我是在网站的管理员视图还是manage.py shell.必须有一个我缺少的额外步骤,但似乎有关整个猴子修补技术的文档有限.所以,在我诉诸继承之前,我会请求你的帮助.当然欢迎任何代码,提示或指向其他文档的链接.
提前致谢.
PS.我知道这种技术很难看,而且可能是不明智的.;)
当您向任何模型添加字段时,即使您以"官方"方式执行此操作,也需要迁移数据库 - Django不会为您执行此操作.放下桌子再跑./manage.py syncdb一次.
您可能想要调查其中一个迁移框架,例如south,它将为您管理此类事情.