带有djongo连接器的Django多数据库,用于mongodb

时间:2018-10-12 13:35:17

标签: django python-3.x django-models djongo

我在mogodb上有一个带有2个数据库的项目。 所以我为此使用djongo。 用于身份验证的数据库以及与我的自定义模型的一个链接。

所以在我的设置中,我做到了:

    # Database
DATABASE_ROUTERS = [CrawlerRouter]
DATABASES = {
    'default' : {
        'ENGINE': 'djongo',
        'NAME': 'djangodb'
    },
    'crawler_db' : {
        'ENGINE': 'djongo',
        'NAME': 'crawler',
    }

}

然后我创建了一个简单的路由器:

class CrawlerRouter:
    def db_for_read(self, model=None, **hints):

        print("read crawler_db")
        print(model)
        if model == None :
            return None
        return 'crawler_db'

    def db_for_write(self, model=None, **hints):
        print(model)
        print("db_for_write crawler_db")

        if model == None :
            return None
        return 'crawler_db'

    def allow_relation(self, obj1, **hints):
        return None

    def allow_migrate(self, db, app_label= None, model_name=None, **hints):

        if (db  in ['auth', 'contenttypes', 'sessions', 'admin']):
            return False
        return True

然后我创建了一个模型:

from django.db import models

# Create your models here.

class Channel(models.Model) :
    created_at =  models.DateField()
    name =  models.CharField(max_length=100)

    def __str__(self):
        return self.name

    class Meta:
        app_label = "channel"
        db_table = "channels"

但是,当它经过db_for_read时,该模型始终为None,因此它永远不会以别名“ crawler”的名称打入我的数据库“ crawler_db”。 你可以帮帮我吗? 我是django的初学者,我找不到我的错误:(

非常感谢

托马斯

0 个答案:

没有答案