我有一个数据库,可以从股票市场导入数据。这些都是相同的表,只是日期不同。如何将django模型与动态表名连接起来?
答案 0 :(得分:1)
您可以在模型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
答案 1 :(得分:0)
#!/usr/bin/env bash
# Cancel Program
exit_program(){
echo "Here is the PID: $$"
exit
}
# Reciever
trap "exit_program" SIGUSR1
我认为,它会起作用,但会在关系上造成一些麻烦