def save(request): # recupera informacoes do POST nome = request.POST["nome"] email = request.POST["email"] cliente = Cliente() # testa se ja existe cliente cadastrado com o email fornecido try: tcliente = Cliente.objects.get(email=email) cliente = tcliente except: # caso contrario cria um novo e salva cliente = Cliente() cliente.nome = nome cliente.email = email cliente.save() # cria uma nova expressao e salva associada ao cliente acima valor = request.POST["expressao"] try: expressoes = cliente.expressao_set.all() # se nao expressoes cadastradas if expressoes: # testa se o cliente ainda nao cadastrou a string for expr in expressoes: if expr.valor == valor: raise Exception # cria uma expressao caso contrario expressao = Expressao() expressao.valor = valor expressao.cliente = cliente expressao.save() result = "Expressao \"%s\" cadastrada com sucesso" % valor except: result = "Expressao \"%s\" ja cadastrada" % valor # redireciona para pagina de sucesso return render_to_response('clientes/success.html', {'cliente': cliente.email, 'result': result})