У меня есть модель с Postgres JSON Field.
class MyModel(models.Model):
data = JSONField(null=True)
затем я делаю:
m1 = MyModel.objects.create(data={'10':'2017-12-1'})
m2 = MyModel.objects.create(data={'10':'2018-5-1'})
Я хочу запросить все MyModel, чей ключ '10' начинается с '2017', поэтому я хочу написать:
MyModel.objects.filter(data__10__startswith='2017')
Проблема в том, что число 10 интерпретируется как целое число, и поэтому в сгенерированном запросе оно рассматривается как индекс списка, а не как ключ.Есть ли способ решить это?(кроме написания необработанных запросов).
Это сгенерированный запрос:
SELECT "systools_mymodel"."id", "systools_mymodel"."data" FROM "systools_mymodel" WHERE ("systools_mymodel"."data" ->> 10)::text LIKE '2017%' LIMIT 21;
И я хочу, чтобы 10 было заключено в кавычки (что дало бы мне правильный ответ).
Спасибо!