Модель Джанго с динамическими таблицами БД

Я использую Django для взаимодействия с другим (JAVA) приложением, которое на основе некоторых событий генерирует во время выполнения таблицы в БД с той же моделью. Так что я не имею прямого контроля над БД. Например:

Sensor1
id | value | time
1      10      2018-10-11

Sensor2
id | value | time
1      12     2018-10-11

В настоящее время моя модель Django выглядит примерно так:

class Sensor(models.Model):
 value = models.IntegerField()
 time = models.DatetimeField()

 class Meta:
  managed = False
  db_table = "Sensor1"

Есть ли у вас какие-либо подсказки, могу ли я как-то настроить модель, чтобы можно было получать данные из другой таблицы на основе запроса? В идеале, то, что позволило бы мне получить данные в виде:

config_tables=['Sensor1','Sensor2']

for table in config_tables:
 data = Sensor.objects.table(table).objects.all()
 ...

Другая возможность может также иметь SQL-запрос, который выполняется в разных таблицах, так что, возможно, что-то вроде:

SELECT * FROM %s; 

1 ответ

Кажется, что лучшее решение на данный момент - это создать собственный SQL-запрос, поэтому в этом примере это может быть что-то вроде этого в models.py:

def get_all_parameters(db_table):
    return Parameters.objects.raw('SELECT * FROM %s' % db_table)

и назовите это как:

get_all_parameters('Sensor1')

или как:

TABLES = ['Sensor1', 'Sensor2']

for table in TABLES:
 parameters = get_all_parameters(table) 
 ...
Другие вопросы по тегам