Guardar el usuario que crea un objeto desde un CreateView

11 de Mayo de 2012 · 1 min de lectura

Logo APSL

Supongamos que tenemos un formulario asociado a un modelo que tiene una FK hacia User. El formulario de entrada normalmente no contendrá ningún desplegable para seleccionar el usuario, sinó que lo que queremos es que al guardar automáticamente se guarde en el objeto creado por el formulario la referencia hacia el usuario que lo creó. Esto lo podemos hacer fácilmente sobreescribiendo el método form_valid de nuestra class, sería una cosa así:

class AddObjectView(CreateView):
    model = NuestroModelo
    form_class = ElFromularioSinElUser
    success_url = reverse_lazy('objeto-guardado')

    def form_valid(self, form):
        self.object = form.save(commit=False)
        self.object.user = self.request.user
        self.object.save()
        return super(AddObjectView, self).form_valid(form)
Comparte este artículo
Artículos recientes