Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
名称错误:名称';订单号';没有定义Python,Django_Python_Django_Python 3.x_Django Models - Fatal编程技术网

名称错误:名称';订单号';没有定义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']
                           }
                           )
                )