我在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的初学者,我找不到我的错误:(
非常感谢
托马斯