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}
Любые решения или советы?
Благодарю.