У меня есть простой набор форм, используемый для регистрации донора в моей базе данных.Django UnboundLocalError
Если я приземляюсь на страницу с существующей записью из БД и удаляю значение из ввода формы и отправляю, я получаю UnboundLocalError.
Django Version: 1.3
Exception Type: UnboundLocalError
Exception Value: local variable 'dac' referenced before assignment
views.py
@login_required
def dizimista(request, nr_dizimista):
dizimista = get_object_or_404(CadastroDizimista, pk=nr_dizimista, usuario=request.user)
if request.method == 'POST' and request.POST.get('action') == 'Cancelar':
return HttpResponseRedirect("/lista/")
elif request.method == 'POST' and request.POST.get('action') == 'Salvar':
form = FormCadastroDizimista(request.POST, request.FILES, instance=dizimista)
if form.is_valid():
cadastro = form.save(commit=False)
cadastro.usuario = request.user
cadastro.save()
return HttpResponseRedirect("/lista/")
else:
form = FormCadastroDizimista(instance=dizimista)
dac = CadastroDizimista.objects.get(pk=nr_dizimista).datacadastro
dam = CadastroDizimista.objects.get(pk=nr_dizimista).datamodificado
return render_to_response("cadastro.html", {'dac': dac, 'dam': dam, 'form': form}, context_instance=RequestContext(request))
Извините. Я еще раз подчеркнул код и обнаружил свою ошибку. «dac» должен быть глобальным var. Я объявил это и «плотина» как глобальная внутри def и voilá! – rjdsantos
Это неверно, почти во всех случаях вы не должны использовать глобальные переменные. Вы должны заполнить эти переменные внутри представления для любого возможного случая в IF's (возможно, заполнить их перед первым IF). Они выглядят зависимыми от предоставленной переменной document_root, поэтому я не вижу никакого способа, почему они должны быть глобальными. – ilvar