В приложении Django я пытаюсь получить доступ к существующей базе данных MySQL, созданной с помощью Hibernate (Java ORM).Я реверс-инжиниринг модели, используя:
$ manage.py inspectdb > models.py
Это создало хороший файл моделей из базы данных, и многие вещи были довольно хорошо.Но я не могу найти, как правильно получить доступ к логическим полям, которые были отображены в Hibernate как столбцы типа BIT (1).
Сценарий inspectdb по умолчанию создает эти поля в модели как TextField и добавляет комментарийговоря, что он не может надежно получить тип поля.Я изменил их на BooleanField и открыл свои объекты модели с помощью администратора, но это не работает (объекты модели всегда получают значение true для этих полей).Использование IntegerField также не будет работать (например, в админке в этих полях отображаются странные символы, отличные от ascii).
Есть ли намеки на это без изменения базы данных?(Мне нужны существующие отображения Hibernate и Java-приложение для работы с базой данных).
Дополнительная информация: я оставил эти поля как BooleanField и использовал интерактивную оболочку для просмотра извлеченных значений.Они возвращаются как '\ x00' (когда значение Java / Hibernate равно false) и '\ x01' (когда true) вместо логических значений Python "True" и "False".
>>> u = AppUser.objects.all()[0]
>>> u.account_expired
'\x00'
>>> u.account_enabled
'\x01'
ГдеМодель включает в себя:
class AppUser(models.Model):
account_expired = models.BooleanField()
account_enabled = models.BooleanField(blank=True)
# etc...