先直接说解决方法:不要重写__init__方法!!
最近在用django为微信小程序写后台,今天创建对象时为了省事,在models的类中定义了一个__init__(),结果程序运行后报错了,
报错信息是:Re: object has no attribute '_state’
经过一番搜索,看到csdn一位博主说是因为__init__()方法写错了,我以为是我的代码写错了,仔细检查后发现代码没有问题,就抱着怀疑的态度,在bing搜索国际版中搜索一下,一位博主引用django官方文档中的源码解释
大意是说,django中定义模型时都是继承了其他的类,而__init__方法在继承的类中是有意义的,所以不能重写__init__方法,这也就是为什么我们在修改admin添加数据页面时重写的是__str__方法而不是__init__的原因。
所以,英语真的是很重要,不管是高考,考研,还是生活,既然决定了做一名程序员,就要重视英语的学习。