У меня есть проект с 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, и я не могу найти свою ошибку :(
Большое спасибо
Томас