2015-01-28 5 views
2

Недавно я обновил мою версию django с 1.2.5 до 1.7. После этого все новые транзакции в моем приложении работали, как ожидалось. Однако всякий раз, когда я пытаюсь получить доступ консервированный объект, я получаю ошибкуEncodeError: объект QuerySet не имеет атрибута '_prefetch_related_lookups'

EncodeError: 'QuerySet' object has no attribute '_prefetch_related_lookups'

Здесь ошибка Метательное

'QuerySet' object has no attribute '_prefetch_related_lookups' 
Traceback (most recent call last): 
    File "/foo/bar/gateway/baseGateway.py", line 108, in queueMessage 
    eng.processMessage(msgRow) 
    File "/foo/bar/engine/processor.py", line 101, in processMessage 
    tasks.deliverMessage.apply_async(args=[foo, bar], queue='message-deliver') 
    File "/opt/bitnami/python/lib/python2.7/site-packages/celery/app/task.py", line 555, in apply_async 
    **dict(self._get_exec_options(), **options) 
    File "/opt/bitnami/python/lib/python2.7/site-packages/celery/app/base.py", line 353, in send_task 
    reply_to=reply_to or self.oid, **options 
    File "/opt/bitnami/python/lib/python2.7/site-packages/celery/app/amqp.py", line 305, in publish_task 
    **kwargs 
    File "/opt/bitnami/python/lib/python2.7/site-packages/kombu/messaging.py", line 161, in publish 
    compression, headers) 
    File "/opt/bitnami/python/lib/python2.7/site-packages/kombu/messaging.py", line 237, in _prepare 
    body) = dumps(body, serializer=serializer) 
    File "/opt/bitnami/python/lib/python2.7/site-packages/kombu/serialization.py", line 164, in dumps 
    payload = encoder(data) 
    File "/opt/bitnami/python/lib/python2.7/contextlib.py", line 35, in __exit__ 
    self.gen.throw(type, value, traceback) 
    File "/opt/bitnami/python/lib/python2.7/site-packages/kombu/serialization.py", line 59, in _reraise_errors 
    reraise(wrapper, wrapper(exc), sys.exc_info()[2]) 
    File "/opt/bitnami/python/lib/python2.7/site-packages/kombu/serialization.py", line 55, in _reraise_errors 
    yield 
    File "/opt/bitnami/python/lib/python2.7/site-packages/kombu/serialization.py", line 164, in dumps 
    payload = encoder(data) 
    File "/opt/bitnami/python/lib/python2.7/site-packages/kombu/serialization.py", line 356, in pickle_dumps 
    return dumper(obj, protocol=pickle_protocol) 
    File "/opt/bitnami/python/lib/python2.7/site-packages/django/db/models/query.py", line 113, in __reduce__ 
    return super(QuerySet, self).__reduce__() 
    File "/opt/bitnami/python/lib/python2.7/copy_reg.py", line 84, in _reduce_ex 
    dict = getstate() 
    File "/opt/bitnami/python/lib/python2.7/site-packages/django/db/models/query.py", line 91, in __getstate__ 
    self._fetch_all() 
    File "/opt/bitnami/python/lib/python2.7/site-packages/django/db/models/query.py", line 967, in _fetch_all 
    if self._prefetch_related_lookups and not self._prefetch_done: 
EncodeError: 'QuerySet' object has no attribute '_prefetch_related_lookups' 

Глядя на некоторые из решений, предлагаемых в Интернете и Джанго here и here, Я очистил таблицу сеансов в django, но ничего не получилось. Ошибка все еще сохраняется. Я также использую memcache в своем приложении, и я это очистил. Я также использую сельдерей.

Кто-нибудь знает, как это исправить?

+0

Без вашего кода трудно найти, что не так. – laike9m

+0

Из документа django кажется, что ошибка вызвана обновлением, где атрибут _prefetch_related_lookups был введен там, где он не существовал. Также из журнала ошибок, кажется, код брошен на django leval не на мой код. Тем не менее, я мог бы отправить код, если понадобится] – Magondu

ответ

0

погуглить дают нам результаты

возвратным сеансы приложению исправили проблему (по крайней мере на данный момент ...) https://code.djangoproject.com/ticket/18674

Проблема заключается в Сессии, я должен был удалить их все за это Работа. Addtionally Я изменил настройки SECRET_KEY, чтобы все сессии не проверялись.

http://jj.isgeek.net/2013/04/django-queryset-object-has-no-attribute-_prefetch_related_lookups/

+0

Уже пробовал все это. Все еще не удалось. – Magondu

0

У вас есть некоторые сериализованные данные из Django 1.4 < и Kombu пытается десериализации его в текущей версии Django.

Я не знаю, где Kombu сохраняет свои сериализованные данные, но вот где вы должны смотреть. Вы должны либо удалить устаревшие данные, либо если вам нужно сохранить данные, вручную измените их в соответствии с текущей версией Django.

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