2010-06-15 6 views
10

Ich habe ein ähnliches Problem wie ein zuvor gelöstes Problem von mir, außer diesmal Lösung nicht zu funktionieren scheint:Warum save_model-Methode nicht in admin.StackedInline funktioniert?

How to auto insert the current user when creating an object in django admin?

Früher verwenden ich die save_model außer Kraft zu setzen um den Benutzer zu stempeln den Artikel einreichen. Jetzt muss ich das gleiche für Kommentare tun, es scheint nicht mehr zu funktionieren.

Wer hat irgendwelche Ideen?

Vielen Dank!

Jason

Antwort

19

Die Einsparung nicht in der InlineAdmin des save_form getan wird, haben Sie bei save_formsets in der Modeladmin suchen, auf die die inlines gehören:

class MyAdmin(admin.ModelAdmin): 
    inlines = [MyInlineAdmin,.....] 

    def save_formset(self, request, form, formset, change): 
     formset.save() 
     if not change: 
      for f in formset.forms: 
       obj = f.instance 
       obj.user = request.user 
       obj.save() 
+1

Vielen Dank! Nur um ein substanzielleres Beispiel zu bieten: http://StackOverflow.com/Questions/1477319/How-to-get-the-django-current-login-user – FurtiveFelon

+0

Sind Sie sicher: wenn nicht ändern: ist richtig? Sollte es nicht sein, wenn sich ändern :? Vielen Dank für dein Beispiel !!! Abgestimmt. –

+2

@LukeDupin Ich denke, das ist richtig. Wie geschrieben, würde es nur den Benutzer festlegen, wenn das Inline-Objekt erstellt wird, aber nicht auf Updates. – TehCorwiz