Я хотел бы " аннотировать " набор запросов (связанный с моделью, которая может называться My_Model_A
) со значениями, хранящимися в JSONField (давайте назовем его coefficients
) определенного c экземпляр другой модели (My_Model_B
). Например, значение coefficients
может быть {"6500":1, "7201":2, "2003":1.5}
, где 6500
, 7201
и 2003
являются первичными ключами экземпляров My_Model_A
, которые я хочу собрать в наборе запросов. В этом конкретном c случае я хотел бы иметь возможность легко получить доступ к значениям 1
, 2
, 1.5
в моем Django объекте QuerySet.
Конкретно, каким я являюсь в настоящее время Делаем так:
coefficients = My_Model_B.objects.latest().coefficients # JSONField
results = My_Model_A.objects.filter(pk__in=coefficients).values('pk', 'name')
results = list(results)
for result in results:
result['coefficient']=coefficients[str(result['pk'])]
Однако, я думаю, есть более эффективный способ сделать это и избежать этого " для " l oop, особенно для больших наборов запросов. Любая помощь приветствуется. Заранее спасибо!