База данных django multi с разъемом djongo для mongodb - PullRequest
0 голосов
/ 12 октября 2018

У меня есть проект с 2 базами данных на mogodb.Так что я использую Джонго для этого.база данных используется для аутентификации и одна ссылка с моими пользовательскими моделями.

Итак, в моих настройках я сделал:

    # 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, и я не могу найти свою ошибку :(

Большое спасибо

Томас

...