django autoupdate-Benutzer; speichern() got an unexpected keyword argument 'force_insert'
Ich versuche, die Implementierung einer auto-update für den Benutzer ein Datensatz erstellt, mit ModelAdmin save_model wie beschrieben hier. Ich war nicht in der Lage, herauszufinden, wie man rund um die kwarg Fehler "speichern() got an unexpected keyword argument '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)
Den Dokumentation besagt, dass
"Der save_model Methode wird die HttpRequest, eine model-Instanz, ein
ModelForm Instanz und einen boolean-Wert basierend auf, ob es hinzufügen
oder ändern Sie das Objekt."
Wird dieses etwas automatisch oder muss ich pass es aus der Sicht? Wenn das ist nicht das Problem, dann, was könnte es sonst sein?
EDIT: geänderte code wieder zu passen Beispiel.
Du musst angemeldet sein, um einen Kommentar abzugeben.
update
Wenn Sie überschrieben haben
save()
Methode derActivity
oder einige andere Modelle, die gerettet werden, in der Zwischenzeit aber vergessen, zu akzeptierenforce_insert
als keyword-argument, dieser Fehler passieren konnte:Überprüfen Sie die trackback zu suchen, die gescheiterten
save
Deinem code nicht ganz Folgen, den code aus b-list.org versuchen Sie:
save()
Methode derActivity
oder einige andere Modelle, die gerettet werden, auch.Als Allgemeine Regel gilt, sollten Sie nur überschreiben Sie die
save()
Methode in das Modell selbst, die nicht in einem Modell-admin.Beim überschreiben der save () - Methode in einem Modell, sollten Sie immer
(*args, **kwargs)
um sicher zu sein. Sie haben keine Möglichkeit zu wissen, welche spezifischen Parameter werden verwendet, wenn ein bestimmtes Modell gespeichert wird.Ihre
Activity
Modell sollte eine Methode wie diese: