2012-05-14 3 views
-1

У меня есть эта ошибкаName 'Order' не определен

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

Почему это может быть?

Update:

Вот отслеживающий:

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 содержит' except Order.DoesNotExist' – Levon

+0

«Foo» не отображается в вашем источнике. Пожалуйста, предоставьте полный, правильный, самодостаточный и минимальный пример: http://sscce.org/ – Marcin

ответ

1

Может быть, я просто что-то отсутствует, но вы имеете в виду класс заказа в вашем CartManager прежде, чем это определено. Заказ не определен до строки 642. Я не знаю много о внутренней работе Django, но я бы попытался переместить класс Order выше CartManager и посмотреть, не пройдет ли эта ошибка.

+0

Python - интерпретируемый язык, поэтому среда не будет искать класс 'Order', пока эта точка в коде не будет достигнута. К тому времени эти модели уже будут определены. –

+0

Дэвид, я колебался, разместив вышеупомянутый ответ, зная, что вы говорите о Python, чтобы быть правдой. Тем не менее, у меня была эта точная «неопределенная» ошибка, решена путем размещения надзорной модели выше, где она упоминается. Я полностью согласен с тем, что вы говорите, чтобы быть правдой, будучи опытным и программистским программистом на основе C. – patrickn

+0

@DavidRobinson, From https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.ForeignKey: «Если вам нужно создать отношения на модели, которая еще не была вы можете использовать имя модели, а не сам объект модели ». В этом случае я не знаю, как ссылаться на Order в CartManager (в отличие от модели), но я бы попробовал решение patrickn –

Смежные вопросы