/ / django autoupdate užívateľ; save () dostal neočakávaný argument kľúčového slova 'force_insert' - django, django-admin, auto-update

používateľ django autoupdate; save () dostal neočakávaný argument kľúčového slova 'force_insert' - django, django-admin, auto-update

Snažím sa implementovať automatickú aktualizáciu pre používateľa, ktorý vytvorí záznam pomocou ModelAdmin save_model ako je opísané tu, Nebol som schopný zistiť, ako sa dostať okolo kwarg error "save () dostal neočakávaný argument kľúčového slova" 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)

Na dokumentácia uvádza, že

"Save_model metóda je uvedená HttpRequest, model stupňa, ModelForm stupňa a Boolovská hodnota založená na či je pridanie alebo Zmena objektu."

Je to niečo, čo automaticky alebo je potrebné zložiť ho z pohľadu?Ak táto "s nejde, potom čo to mohlo byť?

EDIT: zmenil kód späť na zápas príklad.

odpovede:

29 pre odpoveď č. 1

aktualizovať

Ak ste prepísať save() metóda Activity alebo nejaké iné modely, ktoré si uložené v zatiaľ, ale zabudli prijímať force_insert ako kľúčové slovo argument, táto chyba sa môže stať:

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

Skontrolovať trackback vyhľadajte neúspešnú save


Váš kód plne nevyplýva kód z b-list.org, skúste:

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