2017-09-21 21 views
0

申し訳ありませんが、私はこのサイトの多くの人には非常によく知られていますが、私はかなりのレビューをしたことを誓い、ほとんどすべてがインデントと可変範囲の問題でした。それはここにあるようには見えないので、私は誰かが助けることを望んでいる。NameError:名前 'order_vals'が定義されていません。 - Python、Django

だから直前問題の変数を宣言にもかかわらず、私は私のviews.py機能に送信するオブジェクトのリストにデータフレームを解析するために私models.pyに機能を書いていると私はタイトルで参照NameErrorを取得使用されている。コードは

# Setting some default values for our order records. 
    order_vals = { 
     'site': 'WH30-123', 
     'sale_type': 'CUST', 
     'sales_rep': 'JOHN DOE', 
     'customer_number': "123456789", 
     'cust_po_number': '{}-{}'.format(self.start_date.strftime(d_form),self.end_date.strftime(d_form)), 
     'fob': 'ORIGIN' 
    } 
    # Using a helper function to generate a list of orders. 
    orders=helpers.order_parse(ords,order_vals) 

オーケーの下に表示され、私は、少し辞書を入力して関数に渡すと間違って何も見ることができない私はimport pdb; pdb.set_trace()を使用してこのコードをステップ実行するとき、私はorder_valsを実行することができ、それがすべて返されますだけでなく、値は私がそれらを書いたのとまったく同じです。私はここで全然迷っている。助けがあれば、ここに辞書を渡している関数があります。

def order_parse(shipments, order_values): 
    # Creating our empty list 
    orders=list() 
    # Iterating over each 
    for i,row in shipments.iterrows(): 
    orders.append(
     dict(
      order_vals,**{ 
       'shipto_number': row['shipto_number'], 
       'order_number': row['order_number'] 
       } 
      ) 
     ) 
    return orders 

すでにkwargs仕様を使用しても無効です。

アイデア?

+0

私は、Pythonの専門家でないんだけど、変数が関数内で「order_values」と名付けられている(のparamsを参照)、あなたはまだ古い名前「order_vals」を使用していますそれはあなたの機能の文脈に存在しない...? – TheNightCoder

+0

これはちょうど私が私のDjangoプロジェクトのhelpers.pyファイルにプロセスと少し異なるものを開発していたJupyterノートブックの1つのコンベンションを使用していたことです。 – RyanM

答えて

1

トレースバックの行番号に注意してください。実際に、それはあなたが辞書を渡している機能でありますように見える問題:

def order_parse(shipments, order_values):    # <--- "order_values" 
    # Creating our empty list 
    orders=list() 
    # Iterating over each 
    for i,row in shipments.iterrows(): 
    orders.append(
     dict(
      order_vals,**{        # <--- "order_vals" 
       'shipto_number': row['shipto_number'], 
       'order_number': row['order_number'] 
       } 
      ) 
     ) 
    return orders 
+0

聖なるもの。私はそれを逃したとは信じられません。本当にありがとう! – RyanM

0

order_valsが関数内で渡さorder_valsのためにあなたのfunction.Theローカル変数内で定義されていませんが、あなたの関数定義のとおりであるorder_values 。 試してみてください。

 def order_parse(shipments, order_values): 
       # Creating our empty list 
       orders=list() 
       # Iterating over each 
       for i,row in shipments.iterrows(): 
       orders.append(
          dict(
          order_values,**{ 
          'shipto_number': row['shipto_number'], 
      'order_number': row['order_number'] 
          } 
          ) 
       ) 

リターン注文

関連する問題