title: how to solve django: UnboundLocalError
body: <p>I have the given view and template code, when i try to run this code i get the following errors.when i searched about this type of error,i found that it happens when a variable and function is given the same name,but could't correct it in my code.</p>
  
  <pre><code> 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                 
  </code></pre>
  
  <p>plz help me to remove this error.</p>
  
  <pre><code>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)
  </code></pre>
  
  <p>Template code is</p>
  
  <pre><code>    &lt;html&gt;
      &lt;head&gt;
      &lt;title&gt;BUDGET&lt;/title&gt;
      &lt;/head&gt;
      &lt;body&gt;
      &lt;h1&gt;BUDGET MANAGEMENTS&lt;/h1&gt;
      &lt;h2&gt;Your Account Number is : {{ account_number }}.&lt;/h2&gt; &lt;h2&gt;You Chose {{ period }} {{month}} as period&lt;/h2&gt;   
  
      {% if form.errors %}
      &lt;p style="color: red;"&gt;
          Please correct the error{{ form.errors|pluralize }} below.
      &lt;/p&gt;
      {% endif %}
  
  
      &lt;form action="." method="post"&gt;{% csrf_token %}
      {% for formset in formsetlist %}
      {{ formset.management_form }}
      {{child}}
  
      &lt;table&gt;
      {% for form in formset.forms %}
  
      {% if forloop.counter == 0  %}
       {{child.1}}
      {% endif%}
      {{ form }}
      {% endfor %}
      &lt;/table&gt;   
      {% endfor %}
      &lt;input type="submit" value="Submit"&gt;
      &lt;/form&gt;
      &lt;/body&gt;
      &lt;/html&gt;
  </code></pre>