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」必須是全球變量。我把它和「dam」聲明爲def和voilá中的全局內容! – rjdsantos 2012-03-24 21:43:31
這是不正確的,在幾乎所有情況下,你都不應該使用全局變量。您應該在視圖中爲IF中的任何可能情況填充該變量(可能會在第一個IF之前填充它們)。他們看起來依賴於提供的變量document_root,所以我沒有看到它們爲什麼應該是全局的。 – ilvar 2012-03-25 02:27:32