2010-06-15 12 views
10

Tengo un problema similar como un problema resuelto previamente mío, excepto no parece que esta solución de tiempo para trabajar:por qué el método save_model no funciona en admin.StackedInline?

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

Anteriormente he usado para anular el save_model para estampar el usuario que envía el artículo. Ahora necesito hacer lo mismo para los comentarios, ya no parece funcionar.

¿Alguien tiene alguna idea?

¡Muchas gracias!

Jason

Respuesta

19

El ahorro no se hace en el InlineAdmin save_form, usted tiene que mirar en el save_formsets ModelAdmin a la que pertenecen los inlines:

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

Muchas gracias! Solo para proporcionar un ejemplo más sustancial: http://stackoverflow.com/questions/1477319/how-to-get-the-django-current-login-user – FurtiveFelon

+0

¿Estás seguro: si no cambias, es correcto? ¿No debería ser si el cambio :? Muchas gracias por tu ejemplo! Hasta votado. –

+2

@LukeDupin Creo que esto es correcto. Tal como está escrito, solo configuraría al usuario cuando se crea el objeto en línea, pero no en las actualizaciones. – TehCorwiz

Cuestiones relacionadas