2015-02-08 3 views
2

Я получаю очень странную ошибку на моем сервере, на котором запущено приложение django. Ошибка не воспроизводится на моем локальном сервере разработки.Класс модели Django - нет в менеджере

У меня есть эта модель, и это менеджер:

class CardManager(models.Manager): 

    def get_by_identifier(self, card_identifier): 
     ... 
     for possible_suit in Card.SUITS: 
      ... 

class Card(models.Model): 
    objects = CardManager() 
    SUITS = ((1, 'Clubs'), ...) 

Это ошибка:

AttributeError at /game/playcard/2/S1/ 

'NoneType' object has no attribute 'SUITS' 

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

File "local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response 
    115. response = callback(request, *callback_args, **callback_kwargs) 
File "local/lib/python2.7/site-packages/django/contrib/auth/decorators.py" in _wrapped_view 
    25. return view_func(request, *args, **kwargs) 
File "views.py" in play_card 
    155. card = Card.objects.get_by_identifier(card_identifier) 
File "models.py" in get_by_identifier 
    16. for possible_suit in Card.SUITS: 

Запуск Django 1.5 (да, я знаю,), Python 2.7 и uwsgi

Любые идеи? Я склоняюсь к чему-то определенному uwsgi, поскольку я не могу воспроизвести его на своей локальной машине, но я бы не знал, где искать ...

Спасибо!

ответ

1

Использование self.model для доступа к модели с менеджером:

for possible_suit in self.model.SUITS: 
    ... 
+0

Awesome, спасибо! Для этого есть причина? Это упоминается в документах? Я ничего не мог найти раньше ... – Gargamel

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