Django — оставил два набора запросов из разных баз данных

#django #django-models #django-views

#django #django-модели #django-представления

Вопрос:

У меня есть две модели из разных баз данных и сервера:

 # This is from server A, database A1
class employee_info(models.Model):
    emp_id = models.AutoField(db_column='id', primary_key=True)
    first_name = models.CharField(db_column='First_name', max_length=255)

# This is from server B, database B1
class vehicles(models.Model):
    vehicle_id = models.AutoField(db_column='id', primary_key=True)
    vehicle_type = models.CharField(db_column='vehicle_type', max_length=255)
    emp_id= models.IntegerField(db_column='emp_id')  # No Foreign Key Constaints
 

Это мой запрос

 def getinfo():
    vehicles = vehicles.objects.using('ServerA').all()
    emp_info = employee_info.objects.using('ServerB').all()

    # How do I do a left join on vehicles with emp_info base on 'emp_id' column of both queryset?
    vehicle_with_emp_info = ??? # vehicles LEFT JOIN emp_info ON vehicles.emp_id = emp_info.emp_id, but how?
    return vehicle_with_emp_info 
 

Как мне присоединиться к двум наборам запросов? Есть ли способ сделать это?

Если решения нет, есть ли альтернатива? Я забочусь только о отображении результирующих данных на стороне клиента в табличном формате.

Спасибо

Комментарии:

1. К сожалению, django не поддерживает отношения между базами данных ( docs.djangoproject.com/en/3.1/topics/db/multi-db /… ). Вы можете преобразовать свои наборы запросов в простые объекты python и «связать» их вместе.

2. Есть какие-либо рекомендации о том, как преобразовать набор запросов в простые объекты python? Я попытался преобразовать его в фрейм данных, но библиотека фреймов данных, похоже, приводит к тому, что мое приложение django зависает все вместе без предупреждения об ошибке (я использую стек с Apache и Django)