Django Postgresql JsonField обход доступа

У меня есть следующие модели Django:

class UnitOfMeasure(models.Model):
    unit_of_measure_id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=100, verbose_name="Unit Of Measure")
    insert_time = models.DateTimeField(auto_now_add=True)
    update_time = models.DateTimeField(auto_now=True)

class SmartDeviceMeasurement(models.Model):
    measurement_id = models.AutoField(primary_key=True)
    data = JSONField(null=False, blank=False)

в data В поле JsonField я добавлю словарь json, как показано ниже:

{
  "3": {
    "VLN1": 222,
    "VLN2": 222,
    "VLN3": 222
  },
  "4": {
    "IL1": 222,
    "IL2": 222,
    "IL3": 222
  }
}

Каждая строка в моей базе данных содержит этот JSON, объект, который создается, когда система будет считывать данные с датчика, и каждый ключ словаря представляет первичный ключ единицы измерения (упоминается в другой модели, описывающей чтение переменных ", т.е.: VLN1 имеет UnitOfMeasure 3 и т. Д."), В этом случае клавиша 3 - это напряжение, а клавиша 4 - это ампера.

Моя цель - создать список всех измерений с определенной единицей.

Я пытался использовать метод has_key django, но выдает мне весь результат данных строки, в любом случае мне нужно получить только "часть" всего объекта json, например, результат может быть похож на этот:

select data->>'3' AS test from SmartDeviceMeasurement

test
{"VLN1": 222, "VLN2": 222, "VLN3": 222}
{"VLN1": 220, "VLN2": 220, "VLN3": 220}
{"VLN1": 223, "VLN2": 223, "VLN3": 223}

Любые решения или советы?

Благодарю.

0 ответов

Другие вопросы по тегам