名称错误:名称';订单号';没有定义Python,Django
好吧,我知道这个问题的标题对这个网站上的很多人来说非常熟悉,但我发誓我已经复习了很多,几乎所有的问题都是缩进和变量范围的问题。这里似乎不是这样,所以我希望有人能帮上忙 因此,我在名称错误:名称';订单号';没有定义Python,Django,python,django,python-3.x,django-models,Python,Django,Python 3.x,Django Models,好吧,我知道这个问题的标题对这个网站上的很多人来说非常熟悉,但我发誓我已经复习了很多,几乎所有的问题都是缩进和变量范围的问题。这里似乎不是这样,所以我希望有人能帮上忙 因此,我在models.py中编写了一个函数,将一个数据帧解析成一个对象列表,发送到views.py函数,我得到了标题中引用的NameError,尽管在使用前立即声明了有问题的变量。代码如下所示 # Setting some default values for our order records. order_vals
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\u 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规范,但没有效果
有什么想法吗?注意回溯中的行号。问题实际上看起来像是在将字典传递给的函数中:
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
def order\u parse(发货、订单值):#未在函数中定义订单值。函数中传递的订单值的局部变量是符合函数定义的订单值。
尝试:
return orders我不是Python方面的专家,但在函数中变量名为“order\u values”(参见params),您仍然使用旧名称“order\u vals”它不存在于你的函数上下文中…?是的,这只是我在Jupyter笔记本中使用的一个约定,我在那里开发过程,在Django项目的helpers.py文件中使用了一个稍微不同的约定。天哪。我真不敢相信我错过了。非常感谢!
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']
}
)
)