Разбираюсь с django наткнулся на очередную проблему, решение которой найти не смог. Запустил 'hello word' - админка со списком групп и юзеров, все редактируется, обновляется, удаляется. Использовал sqlite3 (пустая).
Решил сменить sqlite на mysql и в админке вывести таблицу из mysql-бд. Что может быть проще :)
mysql база уже содержит данные. Что сделал:
1) Добавил в DATABASES новую базу:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': 'Archive',
...
},
'istok': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'istok',
'USER': 'root',
'PASSWORD': 'root',
}
}
2) Поставил MySQL-python.
3) Создал (сгенерировал) модель (беру не все поля из таблицы):
class Doc(models.Model):
channel_number = models.CharField(max_length=2, blank=True)
session = models.DateTimeField(blank=True, null=True)
size = models.IntegerField(blank=True, null=True)
suffix = models.CharField(max_length=10, blank=True)
class Meta:
managed = False
db_table = "archive"
4) Зарегал модель в админке
class DocAdmin(admin.ModelAdmin):
list_display = ('channel_number ', 'session ', 'size ', 'suffix')
# Register your models here.
admin.site.register(Doc, DocAdmin)
5) Запускаю админку, секция появилась, но если кликнуть по Docs или по опции change валится с OperationalError at /admin/Docs/doc/ no such table: archive. По Add октрывает формочку с добавлением новой сущности (правда при добавлении тоже падает)
По сему подскажите, что делаю не так, что нужно сделать? Что не понятно мне:
1) Как django понимает к какой базе относится таблица archive. Я так понимаю сейчас она ее относит к дефолтной, как указать базу в таком случае? (Так вышло, что имя дефолтной базы совпадает с именем таблицы второй базы)
2) Как полностью переехать с SQLite, т.е. убрать ее из проекта?
3) Как и где django хранит список юзеров и их пароли, нигде толкового описания не нашел?
4) Как показывать не все данные из модели, а, например, разбивать по 20 штук?