2013-11-11 2 views
0

У меня есть проект Django (1.6) с двумя базами данных. У меня есть одно приложение с одной моделью и несколько таблиц.Django маршрутизации в базу данных на основе таблицы модели

Я хочу использовать маршрутизаторы базы данных для установки определенных таблиц в модели в конкретную базу данных. Вся документация, которую я нашел, объясняет, как перенаправить конкретное приложение в конкретную базу данных.

ответ

0

Похоже, для этого вы можете использовать собственный атрибут маршрутизатора и модели.

YMMV: Не проверял это.

https://docs.djangoproject.com/en/dev/topics/db/multi-db/#using-routers

class MyModel(models.Model): 
    _DATABASE = "foo" 

class CustomRouter(object): 
    def db_for_read(self, model, **hints): 
     database = getattr(model, "_DATABASE", None) 
     return database 
    # repeat for db_for_write, etc. 
+0

Спасибо за ваш ответ. @AKX Является ли «_DATABASE» ссылкой на имя таблицы? Итак, если бы я создал все имена таблиц name_DATABASE (где база данных - это имя моей другой базы данных), она бы так ее обнаружила? Вы знаете, могу ли я просто ссылаться на имена таблиц в маршрутизаторах? –

+0

Значение '_DATABASE' будет просто ссылаться на имя базы данных, указанное в записи настройки DATABASES. Вы можете определить имя таблицы из 'model._meta.db_table'. – AKX

+0

Это не работает в Django 1.11. Я добавил модель модели DATABASE_NAME к моей модели, но она не существует в отношении моего настраиваемого маршрутизатора баз данных. –

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