Получение значения json-поля в sqlite-модели из представления django

Я пытаюсь получить значение из correct_answer ключа в JSON-поле внутри модели, которое ранее было получено из внешнего API. Это значение используется в условии для перенаправления (правильный ответ) или отображения нового вопроса (неправильный ответ).

Когда я попытался получить доступ к значению в виде словаря из подражаемой версии модели, мой тест выдал ошибку 'DefferedAttribute' object is not subscriptable. Можно было бы сказать, что данные не извлекаются из внешнего API, но я проверил, что имитированная модель работает.

Вот мой код:

from django.shortcuts import redirect, render, HttpResponse
from django.template import loader
from .forms import QuestionForm, QuestionLevelForm
from urllib.request import urlopen, URLError
from .models import Log

def process_question(request):
    form={};
    if 'level' in request.POST:
        url = 'http://opentb.com/api.php?amount=1&category=9&difficulty='+request.POST['level']+'&type="multiple"'
        try:
            response = urlopen(url)
        except URLError as e:
            if hasattr(e, 'reason'):
                HttpResponse('Reaching server failed: ', e.reason)
            elif hasattr(e, 'code'):
                HttpResponse('Couldn\'t fufill request', e.code)
        else:
            question = response["results"][0]
            form = QuestionForm(question)
            Log.question = question #How to test this works?
            Log.save(update_fields=['question'])
            return render(request, "log/question.html", {"question": question, "form": form})
    elif 'answer' in request.POST:
        if request.POST["correct_answer"] == Log.question['correct_answer']: #This is the conditional I need 
            return redirect('/log/reward')
        else:
            notification = "Wrong answer"
            level = QuestionLevelForm
            return render(request, "log/question.html", {"form": level, "notification": notification})
    else: 
        form = QuestionLevelForm();

    return render(request, "log/question.html", {"form": form})

Вот моя модель:

from django.db import models

class Log(models.Model):
   recipe_ingredients = models.JSONField(null=True)
   recipe_area =  models.JSONField(null=True) 
   recipe_categories = models.JSONField(null=True)
   activities = models.JSONField(null=True)
   question = models.JSONField(default=dict)

class Meta:
    abstract = True

def save(self, *args, **kwargs):
    self.__class__.objects.exclude(id=self.id).delete()
    super(Log, self).save(*args, **kwargs)

@classmethod
def load(cls):
    try:
        return cls.objects.get()
    except cls.DoesNotExist:
        return cls()

После нескольких попыток запросить поле я нашел этот вопрос Stackoverflow, который имел для меня больше смысла. Однако в данном случае он не сработал.

Может ли кто-нибудь указать, что я упускаю или делаю неправильно?

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