0
데이터베이스에 기증자를 등록하는 데 사용되는 간단한 formset이 있습니다.Django UnboundLocalError
페이지에서 DB의 기존 항목을 가져 와서 양식 입력에서 값을 제거하고 제출하면 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"는 전역 변수 여야합니다. 나는 그것을 선언했고 "댐"을 글로벌 데프와 보일 안에 넣었다! – rjdsantos
맞지 않습니다. 대부분의 경우 전역 변수를 사용하지 않아야합니다. IF의 모든 가능한 경우에 대해 뷰 내부에 해당 변수를 채워야합니다 (어쩌면 첫 번째 IF 전에 값을 채 웁니다). 그들은 제공된 변수 document_root에 종속적 인 것처럼 보이므로 전 세계에 있어야하는 이유가 없습니다. – ilvar