値を返す関数def calculate_delivery_scheduleを作成しようとしています。UnboundLocalError:代入(Python)の前に参照されるローカル変数 'package_line_id'
私はこの場合の問題ではないと思います。これは私のコードです。ここで
私の.pyコードがある=このhave_delivery_scheduleと
def calculate_delivery_schedule(self):
delivery_orders = {}
utc = pytz.timezone('UTC')
have_delivery_schedule = False
total_qty = 0
for sale_order_line in self.order_line:
if sale_order_line.schedule_line_ids:
if len(sale_order_line.schedule_line_ids) > 1:
have_delivery_schedule = True
else:
have_delivery_schedule = False
print "line 28", have_delivery_schedule, sale_order_line.schedule_line_ids, len(sale_order_line.schedule_line_ids)
for schedule in sale_order_line.schedule_line_ids:
if schedule.date2 not in delivery_orders:
if sale_order_line.product_id.pack:
delivery_list = {}
for package_line_id in sale_order_line.package_line_ids:
val_q = package_line_id.qty * schedule.qty
delivery_list.update(
{
package_line_id.product_id: val_q
})
delivery_orders[schedule.date2] = delivery_list
else:
delivery_orders[schedule.date2] = {sale_order_line.product_id: schedule.qty}
print "line 41", delivery_orders[schedule.date2]
else:
if sale_order_line.product_id.pack:
for product_uom_qty in sale_order_line.package_line_ids:
delivery_orders[schedule.date2].update({package_line_id.product_id: schedule.qty})
else:
delivery_orders[schedule.date2][sale_order_line.product_id] = schedule.qty
total_qty += schedule.qty
リターン
if have_delivery_schedule:
print "test", have_delivery_schedule
print "do", delivery_orders
for date2, vals_dict in delivery_orders.iteritems():
print "date2", date2
print "delivery_orders", delivery_orders
for prod_key, vals in vals_dict.iteritems():
print "Line 81", total_qty
print vals
delivery_orders[date2][prod_key] = vals/total_qty
# delivery_orders[date][product_qty] = total_qty
print "line 83 -------------------------------------", vals, total_qty, schedule.qty
print "Line 84 : ", delivery_orders
print "Line 86: ", delivery_orders
return delivery_orders
# else:
# return False
エラー:
File "/media/f/Data/odoo10/product_pack/models/sale_order.py", line 95, in action_confirm
schedule_deliveries = self.calculate_delivery_schedule()
File "/media/f/Data/odoo10/product_pack/models/sale_order.py", line 49, in calculate_delivery_schedule
delivery_orders[schedule.date2].update({package_line_id.product_id: schedule.qty})
UnboundLocalError: local variable 'package_line_id' referenced before assignment
どのようにそれを修正するには?何か案は?あなたは上記のコード行でpackage_line_idを使用する場合
エラーメッセージは明らかです。ローカル変数は、設定される前に使用されていました。 –