Как запрашивать и обновлять вложенные JSON-данные в Django

У меня есть следующий класс, определенный для ведения статистики для системы голосования.

class FormPage(AbstractForm):
    submission_stats = models.JSONField(null=True, editable=False)

Теперь у меня есть submission_stats в следующем формате:

[
   {
      "id":4,
      "label":"checkboxes",
      "choices":[
         {
            "content":"option-A",
            "num_vote":0,
            "user_list":[
               
            ]
         },
         {
            "content":"option-B",
            "num_vote":0,
            "user_list":[
               
            ]
         },
         {
            "content":"option-C",
            "num_vote":0,
            "user_list":[
               
            ]
         }
      ]
   },
   {
      "id":7,
      "label":"Radio Button",
      "choices":[
         {
            "content":"option-1",
            "num_vote":0,
            "user_list":[
               
            ]
         },
         {
            "content":"option-2",
            "num_vote":0,
            "user_list":[
               
            ]
         },
         {
            "content":"option-3",
            "num_vote":0,
            "user_list":[
               
            ]
         }
      ]
   }
]

Когда я получаю сообщение о голосовании, я хочу обновить num_vote и user_list поля в этом JSONField соответствующим образом.

Как запросить и обновить элементы во вложенных данных JSONField, пожалуйста?

установите библиотеку json pip install json

import json

data = json.load(submission_stats)

теперь эти данные являются словарем python. обновляйте их как хотите

чтобы сохранить обновленные данные обратно в поле json, преобразуйте словарь обратно в json следующим образом

json.dumps(data, indent = 4)

и сохранить

плюс, если вы хотите использовать sql в вашем проекте, я настоятельно рекомендую вам использовать

from django_extensions.db.fields.json import  JSONField

вместо

models.JSONField

потому что models.JSONField не очень хорошо сочетается с SQL

Вернуться на верх