Django ForeignKey из внешней базы данных - PullRequest
0 голосов
/ 20 апреля 2020

Я работаю с 2 базами данных, 1 внешняя не управляется 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)

См. Ошибку при открытии этой последней модели. Не могу найти таблицу Client.

  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

введите описание изображения здесь

1 Ответ

0 голосов
/ 27 апреля 2020

Кажется, это не поддерживается Django.

Как использовать django модели с внешними ключами в разных БД?

Ограничения между базами данных Django в настоящее время не обеспечивает поддержку внешнего ключа или отношения «многие ко многим», охватывающие несколько баз данных. Если вы использовали маршрутизатор для разделения моделей на разные базы данных, любые внешние ключи и отношения «многие ко многим», определенные этими моделями, должны быть внутренними для одной базы данных.

Django - ограничения нескольких -databases

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...