来自外部数据库的 Django ForeignKey
Django ForeignKey from external Database
我正在使用 2 个数据库,一个不由 Django 管理的外部数据库,另一个内部数据库。
这是正在处理模型和管理站点的外部数据库:
class Client(models.Model):# IMPORT FROM MYSQL
code = models.CharField(max_length=3, primary_key=True)
name = models.CharField(max_length=250)
region_id = models.IntegerField(db_column="RegionId")
class Meta:
managed = False
db_table = 'client'
这是另一个数据库上由 Django 管理的数据库:
class ClientJuno(models.Model):
LABORATORIES = (('SCR','SCREENS'), ('DVR','DVMR'),)
client = models.ForeignKey(Client, on_delete=models.SET_NULL, null=True)
profiles = models.ManyToManyField(JunoProfile)
laboratory = models.CharField(max_length=20, choices=LABORATORIES)
打开最后一个模型时出现错误。找不到 table 客户端。
OperationalError at /admin/settings/clientjules/
no such table: client
Request Method: GET
Request URL: http://127.0.0.1:8000/admin/settings/clientjules/
Django Version: 2.2.11
Exception Type: OperationalError
Exception Value:
no such table: client
Exception Location: /usr/local/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py in execute, line 383
Python Executable: /usr/local/bin/python
Python Version: 3.6.10
Python Path:
['/app/mmike',
'/usr/local/lib/python36.zip',
'/usr/local/lib/python3.6',
'/usr/local/lib/python3.6/lib-dynload',
'/usr/local/lib/python3.6/site-packages']
Server time: Mon, 20 Apr 2020 08:11:26 +0000
enter image description here
Django 似乎不支持。
How to use django models with foreign keys in different DBs?
跨数据库限制
Django 目前不提供对外键或跨多个数据库的多对多关系的任何支持。如果您使用路由器将模型分区到不同的数据库,则这些模型定义的任何外键和多对多关系必须在单个数据库内部。
Django - 多数据库的限制
我正在使用 2 个数据库,一个不由 Django 管理的外部数据库,另一个内部数据库。
这是正在处理模型和管理站点的外部数据库:
class Client(models.Model):# IMPORT FROM MYSQL
code = models.CharField(max_length=3, primary_key=True)
name = models.CharField(max_length=250)
region_id = models.IntegerField(db_column="RegionId")
class Meta:
managed = False
db_table = 'client'
这是另一个数据库上由 Django 管理的数据库:
class ClientJuno(models.Model):
LABORATORIES = (('SCR','SCREENS'), ('DVR','DVMR'),)
client = models.ForeignKey(Client, on_delete=models.SET_NULL, null=True)
profiles = models.ManyToManyField(JunoProfile)
laboratory = models.CharField(max_length=20, choices=LABORATORIES)
打开最后一个模型时出现错误。找不到 table 客户端。
OperationalError at /admin/settings/clientjules/
no such table: client
Request Method: GET
Request URL: http://127.0.0.1:8000/admin/settings/clientjules/
Django Version: 2.2.11
Exception Type: OperationalError
Exception Value:
no such table: client
Exception Location: /usr/local/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py in execute, line 383
Python Executable: /usr/local/bin/python
Python Version: 3.6.10
Python Path:
['/app/mmike',
'/usr/local/lib/python36.zip',
'/usr/local/lib/python3.6',
'/usr/local/lib/python3.6/lib-dynload',
'/usr/local/lib/python3.6/site-packages']
Server time: Mon, 20 Apr 2020 08:11:26 +0000
enter image description here
Django 似乎不支持。
How to use django models with foreign keys in different DBs?
跨数据库限制 Django 目前不提供对外键或跨多个数据库的多对多关系的任何支持。如果您使用路由器将模型分区到不同的数据库,则这些模型定义的任何外键和多对多关系必须在单个数据库内部。
Django - 多数据库的限制