Вы можете использовать опцию db_table
в моделях Meta
для указания другого имени таблицы, подобного этому.
class YourModel(models.Model):
...
class Meta:
db_table = 'YOUR_TABLE_NAME'
Это будет работать, только если ваша таблица находится в той же базе данных, которую вы используете по умолчанию вНастройки Django.Однако, если эта база данных отличается от базы данных по умолчанию, вам необходимо добавить ее в конфигурации DATABASES
под другим именем и создать собственный маршрутизатор базы данных для правильной маршрутизации, подобной этой.
settings.py
DATABASES = {
...
'other': {
'NAME': 'primary',
'ENGINE': 'django.db.backends.mysql',
'USER': 'mysql_user',
'PASSWORD': 'spam',
},
}
DATABASE_ROUTERS = ['path.to.YourRouter']
routers.py (создайте его)
class YourRouter:
def db_for_read(self, model, **hints):
if model._meta.model_name == 'yourmodel':
return 'other'
return None
def db_for_write(self, model, **hints):
if model._meta.model_name == 'yourmodel':
return 'other'
return None
def allow_relation(self, obj1, obj2, **hints):
return False
def allow_migrate(self, db, app_label, model_name=None, **hints):
return False