2016-09-26 2 views
0

私のリスト名がterm_listであると私はループUnboundLocalError-ローカル変数「term_list」私は私のテンプレートでは、私が読みたいリストを構築しています私のDjangoのビューで割り当て

def lease_payment_details(request, pk): 
    lease_id = pk 

    if lease_id: 
     try: 
      lease = get_object_or_404(Lease, pk=lease_id) 
      try: 
       activeterm = LeaseTerm.objects.get(lease=lease) 
       start = activeterm.start_period.order_value 
       end = activeterm.end_period.order_value 

       period_list = Period.objects.filter(order_value__lte = start, order_value__gte = end) 
       total = 1000 
       for obj in period_list: 
        obj.discount = 0 
        obj.amount = activeterm.amount 
        obj.topay = total - obj.amount - obj.discount 
        term_list.append(obj) 



       payment = activeterm.leasepayment_set.all().order_by('payment_date') 
      except LeaseTerm.DoesNotExist: 
       activeterm = None 
       payment = None 


     except ValueError: 

      raise Http404get_object_or_404(Lease, pk=lease_id) 
    else: 

     lease = "None" 
     activeterm = "None" 
     payment = "None" 
     term_list = "None" 

    data = { 
      'lease': lease, 'payment': payment, 'activeterm':activeterm,'term_list':term_list, 
      } 

    return render(request, 'lease/lease_payment_details.html', {'data': data}) 

のために内部のそれに追加する前に参照私は割り当ての前に参照され、このエラー

ローカル変数 'term_list' を取得しています

私は何が間違っていますか?

+3

あなたはそれを定義していません。 'term_list = []'をコードの先頭に追加してください。 – ozgur

+0

はい、ありがとうございます –

+0

また、タプルが不変であるため、タプルを_build_できません。タプルには 'append'メソッドはありません。 – Selcuk

答えて

0

term_list.append(obj)を実行する前に、term_list = list()またはterm_list = []のリストとしてterm_listを宣言する必要があります。

関連する問題