Вопрос по django, azure-sql-database, django-timezone, admin – Как исправить эту ошибку? «Объект unicode не имеет атрибута tzinfo»

3

Я развертываю свой проект Django в Windows Azure. Я использовал SQLite в качестве сервера базы данных, и все было в порядке. Развернув Мой проект, я решил связать его с базой данных SQL Azure, но, похоже, это решение породило некоторые ошибки. Я больше не могу редактировать профили пользователей. Я всегда получаю эту ошибку: AttributeError в / admin / auth / user / 1 / 'юникода» объект не имеет атрибутаtzinfo»

Stacktrace, вероятно, поможет диагностировать проблему Ngenator

Ваш Ответ

2   ответа
2

У меня была такая же проблема, пытаясь использоватьdjango-pyodbc-azure база данных с Django (1.5.1): по умолчанию она хранитDateTimeField поля в вашей БД какdatetime2(7), который, похоже, все еще не поддерживается в Django. В моем случае я добавил опцию'use_legacy_datetime' : True вsettings.pyкак показано ниже:

DATABASES = {
    'default': {
        'ENGINE' : 'sql_server.pyodbc',
        'NAME' : '',
        'USER': '',
        'PASSWORD': '',
        'HOST': '',
        'OPTIONS': {
            'use_mars': True,
            'use_legacy_datetime' : True, # I added this line
        },
    },
}

Я нашел свое решениеВот, Я неплохо знаю платформу Azure, поэтому я нене знаю, если это именно ваш случай, если нет, вы все еще можете изменить замену базы данныхdatetime2(N) поля со старым добрымdatetime из них.

Надеюсь, поможет.

Что такоеuse_mars а как ты это нашел? Matt
1

Эта ошибка возникает, когда ваша база данных содержит метки даты и времени, например:

0000-00-00 00:00:00.000000

(это может произойти в MySQL, если вы удаляете или перезаписываете предыдущую дату с помощью MySQLWorkbench)

Когда вы попытаетесь получить эти записи в объекте модели Django, вы получите исключение изpytz библиотека часовых поясов:

AttributeError 'unicode' object has no attribute 'tzinfo'

Сначала вы должны отредактировать эти даты в своей базе данных и установить для них более поздние даты, например2018-01-01 00:00:00.000000 или установить наNULL (но не пустой).

Увидеть:

https://groups.google.com/forum/#!topic/django-users/Jg_9fQ3jMcU

Смотрите также:

# 1292 - Неверное значение даты: '0000-00-00'Ошибка в MySQL при установке значения по умолчанию для DATE или DATETIMEКак хранить значения NULL в полях datetime в MySQL?

Похожие вопросы