python - django orm 从其他数据库获取子数据
问题描述
使用 django 2.0.2 python3.4 drf
详情跳过
设置.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'main',
'USER': 'root',
'PASSWORD': 'root123',
'HOST': 'localhost',
'PORT': "3309",
'OPTIONS': {
'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
'charset': 'utf8mb4',
'use_unicode': True,
}
},
'log': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'log',
'USER': 'root',
'PASSWORD': 'root123',
'HOST': 'localhost',
'PORT': "3309"
}
}
模型.py
#used database main
class Post(models.Model):
PostUID = models.BigAutoField(
db_column='PostUID', primary_key=True)
日志模型.py
#used database log
class PostLog(models.Model):
LogUID = models.BigAutoField(
db_column='LogUID', primary_key=True)
#top directory is main
PostUID = models.ForeignKey(
"main.Post", db_column='PostUID', on_delete=models.CASCADE)
UserUID = models.ForeignKey ... skip
我试过这段代码
Post.objects.all().annotate(Log=Case(When(postlog__UserUID=request.get("UserUID"),then=1), output_field=IntegerField(), default=Value(0)))
引发异常
django.db.utils.ProgrammingError: (1146, "Table 'main.Postlog' doe
sn't exist")
如果创建或获取我使用objects.using("log")
工作过
orm中的使用方法
解决方案
推荐阅读
- jenkins - Jenkins 2.204.2:groovy.lang.GroovyRuntimeException:找不到匹配的构造函数:hudson.plugins.sshslaves.SSHLauncher
- r - 如何重命名包含R中反斜杠的列中的字符串
- javascript - 匹配多个字母出现的确切次数
- mysql - 如何设置 mysql 数据库的从属复制以进行开发?
- azure - 运行 Terraform 脚本时绕过标记强制执行 Azure 策略分配的最佳方法是什么?
- filemaker - 隔夜脚本在设置字段返回脚本错误 201
- python - 使用 matplolib 子图在散点图中绘制 8 对不同的 (x,y)
- c++ - c ++显式构造函数不阻止double到int的转换
- python - Pandas - 更改单元格值以使它们等于与整行平均值的偏差?
- javascript - 使用 res.render get 后如何将数据发布到相同的 ejs 视图或部分?