好吧我知道这个问题标题看起来非常熟悉这个网站上的许多人,但我发誓我回顾了很多,几乎所有的缩进和变量范围的问题。这似乎并不是这种情况,所以我希望有人可以帮忙。NameError:名称'order_vals'未定义。 - Python,Django
所以我写一个函数在我models.py
到数据帧解析出到对象的列表发送给我的views.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规范没有效果。
任何想法?
我不是Python的专家,但变量是在你的函数名为“order_values”(见PARAMS)和您还在使用旧名“order_vals”在它不存在于你的功能的上下文...? – TheNightCoder
是的,这只是我在Jupyter笔记本中使用了一个约定,我在开发过程中,在我的Django项目的helpers.py文件中稍有不同。 – RyanM