2012-10-06 13 views
9

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

「save_model方法はのHttpRequest、モデルインスタンス、 のModelFormインスタンスとそれが を追加またはオブジェクトを変更しているかどうかに基づいてブール値を与えられること

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) 

documentation状態。 "

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

EDIT:コードが一致するように変更されました。

答えて

26

更新

あなたが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() 
+0

おかげでそれを指摘するために。私が行ったいくつかのテストから残されたものです。私はそれを正しいコードに変更しましたが、それでも同じエラーがスローされます。 – jabs

+1

@jabsでは、 'Activity'の' save() 'メソッドや保存された他のモデルもオーバーライドされています。 – okm

+0

それはそれでした。モデルにsave()メソッドがありました。ありがとう! – jabs