django自动更新用户;save()得到一个意外的关键字参数';强制插入';
我正在尝试为使用如上所述创建记录的用户实现自动更新。我无法解决如何绕过kwarg错误“save()得到一个意外的关键字参数‘force_insert’” 国家 save_model方法由HttpRequest、模型实例和 ModelForm实例和一个基于是否添加的布尔值 或更改对象。” 这是自动的还是我需要从视图中传递?如果这不是问题,那么还有什么问题 编辑:更改代码以匹配示例。更新 如果您已重写了django自动更新用户;save()得到一个意外的关键字参数';强制插入';,django,django-admin,auto-update,Django,Django Admin,Auto Update,我正在尝试为使用如上所述创建记录的用户实现自动更新。我无法解决如何绕过kwarg错误“save()得到一个意外的关键字参数‘force_insert’” 国家 save_model方法由HttpRequest、模型实例和 ModelForm实例和一个基于是否添加的布尔值 或更改对象。” 这是自动的还是我需要从视图中传递?如果这不是问题,那么还有什么问题 编辑:更改代码以匹配示例。更新 如果您已重写了Activity的save()方法或同时保存的其他一些模型,但忘记接受force\u insert
Activity
的save()
方法或同时保存的其他一些模型,但忘记接受force\u insert
作为关键字参数,则可能会发生以下错误:
def save(self):
...
# should be
def save(self, force_insert=False, force_update=False, using=None):
...
# or at least
def save(self, **kwargs):
...
检查trackback以查找失败的保存
您的代码与b-list.org中的代码不完全一致,请尝试:
def save_model(self, request, obj, form, change):
if not change:
obj.cruser = request.user
obj.save()
一般来说,您应该只覆盖模型本身中的
save()
方法,而不是某些模型管理员中的方法
在模型中重写save()方法时,为了安全起见,应始终使用(*args,**kwargs)
。在保存特定模型时,您无法知道正在使用哪些特定参数
您的活动
模型应该包含如下方法:
def save(self, *args, **kwargs):
'''do your custom stuff here'''
return super(Activity, self).save(*args, **kwargs)
谢谢你指出这一点。这是我做的一些测试留下的。我将其更改为正确的代码,但仍会引发相同的错误。@jabs是否已覆盖
Activity
的save()
方法或其他一些也被保存的模型。就是这样。我的模型上有一个save()方法。谢谢您好@jabs,请您提供一个代码片段来说明您的解决方案好吗?@ThéoT.Carranza-我想我现在无法进行讨论。如果可以的话,我会把它寄出去。祝你好运
def save(self, *args, **kwargs):
'''do your custom stuff here'''
return super(Activity, self).save(*args, **kwargs)