2012-05-14 54 views
-1

我有这样的错误名称 '订单' 没有定义

Name 'Order' is not defined 

在以下claue:

  try: 
       order = Order.objects.from_request(request) 
       cart = OrderCart(order) 
      except Order.DoesNotExist: 
       pass 

Order被精确定义在同一个文件,是model.Model

子更具体一点,这里是我正在使用的文件: https://bitbucket.org/chris1610/satchmo/src/a04c87a539f3/satchmo/apps/satchmo_store/shop/models.py 发生在lin中的异常e 242

这是为什么呢?

更新:

这里是回溯:

Traceback: 
File "/home/evgeniuz/.virtualenvs/port/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response 
    100.      response = callback(request, *callback_args, **callback_kwargs) 
File "/home/evgeniuz/src/chillifish-pg/lib/payment/views/balance.py" in balance_remaining_order 
    30.   template='shop/checkout/balance_remaining.html') 
File "/home/evgeniuz/src/chillifish-pg/pg/pgstore/utils.py" in _view 
    38.    return view_func(request, *args, **kwargs) 
File "/home/evgeniuz/src/chillifish-pg/lib/payment/views/balance.py" in balance_remaining 
    66.   'paymentmethod_ct': len(config_value('PAYMENT', 'MODULES')) 
File "/home/evgeniuz/.virtualenvs/port/lib/python2.7/site-packages/django/template/context.py" in __init__ 
    149.    self.update(processor(request)) 
File "/home/evgeniuz/src/chillifish-pg/lib/satchmo_store/shop/context_processors.py" in settings 
    21.  cart = Cart.objects.from_request(request) 
File "/home/evgeniuz/src/chillifish-pg/lib/satchmo_store/shop/models.py" in from_request 
    237.     except Order.DoesNotExist: 

Exception Type: NameError at /shop/checkout/balance/1/ 
Exception Value: global name 'Order' is not defined 
+1

该文件中的第242行是'except Order.DoesNotExist:'...你为什么称它为Foo? –

+1

你可以仔细检查你提供的链接吗?我在文件中找不到'Foo',第242行包含'Order.DoesNotExist'除外 – Levon

+0

“Foo”没有出现在您的源代码中。请提供一个完整的,正确的,自包含和最小的示例:http://sscce.org/ – Marcin

回答

1

也许我只是失去了一些东西,但它的定义之前,你指的是Order类在CartManager。订单没有被定义,直到642行。我不知道Django的内部工作,但我会尝试将Order类移到CartManager上方,看看它是否让你过去了这个错误。

+0

Python是一种解释型语言,因此在达到代码中的这一点之前,环境将不会被搜索到“Order”类。那时候,那些模型就已经被定义了。 –

+0

大卫,我犹豫地张贴上面的答案知道你说的Python是真实的。但是,我已经通过将违规模型置于其所指的位置上来解决了这个精确的“未定义”错误。我完全接受你说的是真实的,作为一个新手和程序化的C语言程序员。 – patrickn

+0

@DavidRobinson,从https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.ForeignKey:“如果您需要在尚未建模的模型上创建关系定义,您可以使用模型的名称,而不是模型对象本身“。在这种情况下,我不知道如何在CartManager中引用Order(而不是在模型中),但我会尝试patrickn的解决方案 –