Skip to main content
 首页 » 编程设计

python之在 Django 中将模型设置为特定数据库

2025年05月04日31jiqing9006

请问如何将模型设置为特定的数据库。 我还是 django 的新手并阅读了 Database Routing在 Django 网站上,我有 2 个模型,userMod 和 adminMod。
userMod 应该转到数据库 userDB。
adminMod 应该转到数据库 adminDB。
但是当我迁移它时,两个表都存在于两个数据库中。 我已经在 meta 中包含了 app_label,但它仍然无法正常工作。 我正在使用 Django 1.8


编辑: 我只是在 userDB 上试用了一段时间,最终会在 adminDB 上使用它。 这是我的代码:

路由器.py

class router(object): 
 
def db_for_read(self, model, **hints): 
    if model._meta.app_label == 'userDB': 
        return 'userDB' 
    return None 
 
def db_for_write(self, model, **hints): 
    if model._meta.app_label == 'userDB': 
        return 'userDB' 
    return None 
 
def allow_relation(self, obj1, obj2, **hints): 
    if obj1._meta.app_label == 'userDB' or\ 
        obj2._meta.app_label == 'userDB': 
            return True 
        return None 
 
def allow_migrate(self, db, app_label, model=None, **hints): 
    if app_label == 'userDB': 
        return db == 'userDB' 
    return None 

请您参考如下方法:

试试这个:

class userMod(models.Model): 
   name = models.CharField(max_length=120) 
 
   class Meta: 
      db_table='userDB'