/ / django autoupdate потребител; save () получи неочакван аргумент на думата 'force_insert' - django, django-admin, автоматична актуализация

django autoupdate потребител; save () получи неочакван аргумент на думата 'force_insert' - django, django-admin, автоматична актуализация

Опитвам се да внедря автоматична актуализация за потребителя, който създава запис Модел на както е описано тук, Не можах да измисля как да се измъкна от грешката на 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, модел модел, а Пример за модел и булева стойност, основана на това, дали тя добавя или промяна на обекта. "

Дали това е нещо автоматично или трябва да го предам от гледната точка? Ако това не е въпросът, тогава какво друго би могло да бъде това?

EDIT: промени кода обратно към пример за съвпадение.

Отговори:

29 за отговор № 1

актуализация

Ако сте заменили 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()