/ / djangoはユーザーを自動更新します。 save()に予期しないキーワード引数 'force_insert'があります - django、django-admin、auto-update

djangoはユーザーを自動更新します。 save()に予期しないキーワード引数 'force_insert'があります - django、django-admin、auto-update

私はレコードを作成するユーザーのために自動更新を実装しようとしています ModelAdmin save_model 説明したように ここに。私はkwargエラーを回避する方法を考え出すことができませんでした。save()は予期しないキーワード引数 "force_insert"を持っています。 "

admin.py
from myapp.myproj.models import Activity
from django.contrib import admin

class ActivityAdmin(admin.ModelAdmin):
exclude = ("cruser",)
list_display = ("activity_nm", "activity_desc", "startdt", "enddt","upddt","crdt")

def save_model(self, request, obj, form, change):
if not change:
obj.cruser = request.user
obj.save()

admin.site.register(Activity, ActivityAdmin)

ドキュメンテーション その

"save_modelメソッドには、HttpRequest、モデルインスタンス、a ModelFormインスタンスとそれが追加されているかどうかに基づいたブール値 またはオブジェクトを変更することができます。

これは自動的なものか、それともビューから渡す必要がありますか?それが問題でないなら、他に何ができますか?

EDIT:変更されたコードを一致する例に戻しました。

回答:

回答№1の場合は29

更新

上書きした場合 save() 方法 Activity その間に保存されるが、受け入れを忘れた他のモデル force_insert キーワード引数として、このエラーが発生する可能性があります:

def save(self):
...
# should be
def save(self, force_insert=False, force_update=False, using=None):
...
# or at least
def save(self, **kwargs):
...

失敗した場所を見つけるにはトラックバックをチェックしてください save


あなたのコードはb-list.orgのコードに完全に従っていません。

def save_model(self, request, obj, form, change):
if not change:
obj.cruser = request.user
obj.save()