2010-06-15 4 views
10

J'ai un problème similaire comme semble déjà résolu à moi, sauf que cette solution de temps ne pas travailler:Pourquoi la méthode save_model ne fonctionne pas dans admin.StackedInline?

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

Auparavant, j'utilisé pour remplacer le save_model pour tamponner l'utilisateur de soumettre l'article. Maintenant, je dois faire la même chose pour les commentaires, cela ne semble plus fonctionner.

Vous avez des idées?

Merci beaucoup!

Jason

Répondre

19

L'économie ne se fait pas dans save_form de l'InlineAdmin, vous devez regarder save_formsets dans le ModelAdmin auquel les inline appartiennent:

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

Merci beaucoup! Juste pour donner un exemple plus substantiel: http://stackoverflow.com/questions/1477319/how-to-get-the-django-current-login-user – FurtiveFelon

+0

Etes-vous sûr: si pas de changement: est-ce correct? Ne devrait-il pas être si changement:? Merci beaucoup pour votre exemple !!! Up voté. –

+2

@LukeDupin Je pense que c'est correct. Comme écrit cela ne définirait l'utilisateur que lorsque l'objet en ligne est créé, mais pas sur les mises à jour. – TehCorwiz

Questions connexes