Странное поведение сеанса Django: неверный литерал для десятичного числа: ошибка 2011-01-04 09:36:59 - PullRequest
1 голос
/ 21 декабря 2010

Я получаю эту ошибку при попытке извлечь содержимое сеанса из таблицы django_session в моем веб-приложении. Я использую request.session.get ('mykey_name') Запрос, который django выполняет, чтобы получить это:

s = Session.objects.get(session_key = self.session_key,expire_date__gt=datetime.datetime.now()

Кварги: {'expire_date__gt': datetime.datetime (2010, 12, 21, 14, 27, 6, 138883), 'session_key': '721c947a60432c3ac3bbdd485931c945'}

Вот полный ответ:

Traceback:
File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  80.                     response = middleware_method(request)
File "/usr/local/lib/python2.7/site-packages/pyfacegraph-0.0.4-py2.7.egg/facegraph/django/middleware.py" in process_request
  46.         request.graph = self.graph_for_request(request)
File "/usr/local/lib/python2.7/site-packages/pyfacegraph-0.0.4-py2.7.egg/facegraph/django/middleware.py" in graph_for_request
  51.         access_token = self.access_token(request)
File "/home/roohitne/djangoCode/roohit/fb/middleware.py" in access_token
  7.         return request.session.get('access_token')
File "/usr/local/lib/python2.7/site-packages/django/contrib/sessions/backends/base.py" in get
  63.         return self._session.get(key, default)
File "/usr/local/lib/python2.7/site-packages/django/contrib/sessions/backends/base.py" in _get_session
  172.                 self._session_cache = self.load()
File "/usr/local/lib/python2.7/site-packages/django/contrib/sessions/backends/db.py" in load
  20.                 expire_date__gt=datetime.datetime.now()
File "/usr/local/lib/python2.7/site-packages/django/db/models/manager.py" in get
  132.         return self.get_query_set().get(*args, **kwargs)
File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py" in get
  336.         num = len(clone)
File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py" in __len__
  81.                 self._result_cache = list(self.iterator())
File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py" in iterator
  269.         for row in compiler.results_iter():
File "/usr/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py" in results_iter
  672.         for rows in self.execute_sql(MULTI):
File "/usr/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py" in execute_sql
  727.         cursor.execute(sql, params)
File "/usr/local/lib/python2.7/site-packages/django/db/backends/util.py" in execute
  15.             return self.cursor.execute(sql, params)
File "/usr/local/lib/python2.7/site-packages/django/db/backends/mysql/base.py" in execute
  86.             return self.cursor.execute(query, args)
File "/usr/local/lib/python2.7/site-packages/MySQL_python-1.2.2-py2.7-linux-i686.egg/MySQLdb/cursors.py" in execute
  166.             self.errorhandler(self, exc, value)
File "/usr/local/lib/python2.7/site-packages/MySQL_python-1.2.2-py2.7-linux-i686.egg/MySQLdb/connections.py" in defaulterrorhandler
  35.     raise errorclass, errorvalue

Exception Type: InvalidOperation at /oauth/callback/
Exception Value: Invalid literal for Decimal: '2011-01-04 14:04:39'

Я использую django 1.2.3 и python 2.7, а версия базы данных - сообщество 5.1.33 под CentOS. Есть предположения, почему это происходит? Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 24 февраля 2011

Кажется, что проблема связана с тем, что php и python работают в одном и том же экземпляре apache,

Когда я прокомментировал строку

LoadModule php5_module                    /usr/lib/apache2/mod_php5.so

в httpd.conf, она начала работать нормально.

0 голосов
/ 22 декабря 2010

Похоже, очень неясная проблема. Все, что я могу найти на этой теме: http://groups.google.com/group/django-users/browse_thread/thread/2e04a75e5da3c278

Вы недавно обновили или перенесли БД? Проблема сохраняется в новой базе данных syncdb? Может быть, хочу исключить это.

Поскольку ошибка возвращает 2011-01-04 14:04:39, когда вы не предоставили эту информацию, что-то успешно записывается в БД и читает из нее, а что-то еще преобразует ее в десятичную ... К сожалению, я не знаю, как / когда django или mysqldb пытается преобразовать дату и время в десятичное значение

Если никто не ответит, я обращусь к парню по ссылке выше, потому что это буквально единственное упоминание в интернете.

...