django-admin: 重写save方法时出现“super()参数1必须是类型,而不是None”
唉,又遇到一个没用的错误,让我花了一个小时来解决这个问题。
我有一个叫做 'CompanyProfile' 的模型,之前一直运行得很好,但现在当我试着通过管理后台保存这个模型时,出现了一个错误,似乎在告诉我对象引用是空的。我完全不知道该怎么解决这个问题。
我照常在做所有的事情:
def save(self, force_insert=False, force_update=False):
super(CompanyProfile, self).save(force_insert, force_update)
我重启了服务器,重新安装了django,清空了数据库,还是没用。有没有人有好的主意,或者之前遇到过这个问题?
4 个回答
1
试着按照这里的文档中的save()
重写示例来做。注意使用了*args, **kwargs
这两个东西。如果这样还不行,那就说明问题很严重。
1
当你在重写模型方法的时候,需要使用 args 和 kwargs:http://docs.djangoproject.com/en/dev/topics/db/models/#overriding-model-methods
另外,传递可以传给模型方法的参数也很重要——这就是 *args 和 **kwargs 的作用。Django 有时候会扩展内置模型方法的功能,增加新的参数。如果你在方法定义中使用 *args 和 **kwargs,确保你的代码在这些新参数添加时会自动支持它们。
4
可能是循环导入的问题?
在这个例子中,他在一个信号里有一个导入语句,这就是问题所在。
你可以检查一下globals(),看看有没有类似的情况。