나는이 코드를 실행하려고 할 때 주어진 뷰와 템플릿 코드를 가지고 있는데, 다음과 같은 errors.when을 검색하면이 오류 유형을 검색 할 때 변수와 함수 동일한 이름이 주어 지지만 내 코드에서이를 수정할 수는 없습니다.Django를 해결하는 방법 : UnboundLocalError
Environment:
Request Method: GET
Request URL: http://127.0.0.1:8000/budget/show/
Django Version: 1.2.5
Python Version: 2.7.1
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'mysite.bug']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware')
Traceback:
File "/usr/lib/pymodules/python2.7/django/core/handlers/base.py" in get_response 100. response = callback(request, *callback_args, **callback_kwargs)
File "/home/nimesh/budman/mysite/../mysite/bug/views.py" in shown 252.
return render_to_response('budgetfinalform3.html', {'account_number': c,'period':d,'month':e,'year':f,'formsetlist': formset,'child':child},context_instance=RequestContext(request))
Exception Type: UnboundLocalError at /budget/show/
Exception Value: local variable 'formset' referenced before assignment
plz이 오류를 제거하는 데 도움을주세요.
def show (request):
b = request.session["s1"]
c = request.session["s2"]
d = request.session["s3"]
a = account_period.objects.filter(year=d).values('id')
e = account_period.objects.filter(year=d).values('month')
f = account_period.objects.filter(id = a).values('year')
try:
child = account_tab.objects.filter(parent_account_number=c).values('account_number')
noofchild = account_tab.objects.filter(parent_account_number=c).count()
except account_tab.DoesNotExist:
noofchild = 0
if noofchild != 0 :
formsetlist = []
for i in range(0, noofchild):
formsetlist.append(formset_factory(bu, extra=b))
if request.method == 'POST':
formsetlist2.append(formsetlist[i](request.POST))
if formsetlist2[i].is_valid():
j=0
for form in formsetlist2[i].forms:
z = account_tab.objects.get(account_number = child[i:(i+1)])
x = form.cleaned_data['value']
y = account_period.objects.get(id=a[j:(j+1)])
try:
uip = budget.objects.get(account_no = child[i:(i+1)],account_period = a[j:(j+1)])
if uip.budget_amount != x:
uip.budget_amount = x
uip.save()
except budget.DoesNotExist:
w = budget(account_no = z, account_period = y, budget_amount = x, created_by_login = 'me')
w.save()
j=j+1
pass
return HttpResponse('thanks')
else:
return render_to_response('budgetfinalform3.html', {'account_number': c,'period':d,'month':e,'year':f,'formsetlist': formset,'child':child},context_instance=RequestContext(request))
#return HttpResponse(mes)
템플릿 코드는
<html>
<head>
<title>BUDGET</title>
</head>
<body>
<h1>BUDGET MANAGEMENTS</h1>
<h2>Your Account Number is : {{ account_number }}.</h2> <h2>You Chose {{ period }} {{month}} as period</h2>
{% if form.errors %}
<p style="color: red;">
Please correct the error{{ form.errors|pluralize }} below.
</p>
{% endif %}
<form action="." method="post">{% csrf_token %}
{% for formset in formsetlist %}
{{ formset.management_form }}
{{child}}
<table>
{% for form in formset.forms %}
{% if forloop.counter == 0 %}
{{child.1}}
{% endif%}
{{ form }}
{% endfor %}
</table>
{% endfor %}
<input type="submit" value="Submit">
</form>
</body>
</html>
당신의 들여 쓰기 및 서식을 수정하십시오. 그리고 조금 더 오류 출력을 포함 – scytale
@scytale 내가 오류 정보를 제공하고 내게 초보자 나와 함께 코드를 들여 쓰려고했습니다 – nimeshkiranverma
보기의 들여 쓰기가 여전히 엉망입니다. 당신을 도와달라고 요청하는 사람들에게 예의 바르게 고쳐주십시오. 템플릿 변수가 제대로 설정되지 않은 것 같습니다. 'formsetlist'가 정확히 채워지는지보기 위해 print 문을 넣으십시오. – scytale