¿Guardar un formulario usando el marco de autenticación de Django?

Me gustaría poder guardar los datos enviados por el formulario en función del usuario que inició sesión (en lugar de que el usuario escriba su nombre a través de un cuadro de texto). Estoy usando el sistema de autenticación integrado de Django. ¿Alguna idea sobre cómo puedo lograr esto?

@login_required 
def add_review(request, product_id):
    p = get_object_or_404(Productbackup, pk=product_id)
    if request.method == 'POST':
        form = ReviewbackupForm(request.POST)
        if form.is_valid():
            review = form.save(commit=False)
            review.product = p
            #how to save user as well?  review.user = user
            review.save()
            return HttpResponseRedirect(reverse('reserve.views.view_reviews', kwargs={'product_id':p.id}))
    else:
        form = ReviewbackupForm()
    variables = RequestContext(request, {'form': form, 'product_id': product_id})
    return render_to_response('reserve/templates/create_review.html', variables)

preguntado el 04 de julio de 12 a las 02:07

1 Respuestas

Estás usando guardar con commit=False así que ya casi estás allí. Puede obtener el usuario conectado desde el objeto de solicitud.

if form.is_valid(): 
    review = form.save(commit=False) 
    review.product = p 
    review.user = request. user 
    review.save()

Para obtener más detalles, consulte el Documentos de Django para la autenticación de usuarios.

Respondido 04 Jul 12, 03:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.