Django: Как создать код для отображения вопроса с уровнями следования от легкого до трудного

введите описание изображения здесь введите описание изображения здесь

моя система может отображать вопросы в таблице, но только случайным образом. создайте код, который классифицирует вопросы по уровню сложности (легкий, средний, трудный), и отображает их в порядке возрастания сложности.

Вариант 1

  1. Измените поле Questionbank.level на IntegerField (с вариантами выбора, например [(10, 'easy'), (20, 'medium'), (30, 'hard')]) (если у вас уже есть данные вопроса, это потребует миграции)
  2. Questionbank.filter(assignment=assignment).order_by('level')

Вариант 2

Или, если вы абсолютно не можете изменить level на числовой, используйте case/when для отображения его во время выбора, но это объективно худшее решение:

Questionbank.filter(assignment=assignment).annotate(
    level_num=Case(
        When(level="easy", then=Value(1)),
        When(level="medium", then=Value(2)),
        When(level="hard", then=Value(3)),
        default=Value(0),
    ),
).order_by("level_num")
Вернуться на верх