Variable local referenciada antes de la asignación

Me preguntaba si ustedes podrían ayudar. Estoy intentando hacer una vista simple donde envía al usuario al formulario de creación del cliente, pero sigo recibiendo este error:

variable ‘forma’ local referenciada antes de la asignación

Mirando mi código, no puedo ver qué está mal.

def add_client(request): user = request.user if request.method =='POST': form = AddClientForm(request.POST) if form.is_valid(): client = form.save(commit=False) client.save() return HttpResponseRedirect('/') else: form = AddClientForm() return render_to_response('clients/addClient.html', { 'form': form, 'user': user, }, context_instance=RequestContext(request)) 

¿Alguien me dice dónde me equivoqué?

Esto es lo que está pasando:

  1. El bloque if no se está ingresando.
  2. La variable de form no está definida.
  3. A continuación, intenta hacer referencia a la variable de form en la statement de return .

En cuanto a cómo solucionarlo, eso es realmente lo que debes decidir. La corrección depende de lo que desee que haga su código en caso de que el método de solicitud no sea POST .

Es casi seguro que desea quitar la sangría de esta parte:

 else: form = AddClientForm() 

Es decir, en el GET inicial de la página, use un formulario de cliente en blanco, luego, cuando la página se publique, use los datos POST de solicitud para completar el objeto del formulario.