Django: Как создать код для отображения вопроса с уровнями следования от легкого до трудного
введите описание изображения здесь введите описание изображения здесь
моя система может отображать вопросы в таблице, но только случайным образом. создайте код, который классифицирует вопросы по уровню сложности (легкий, средний, трудный), и отображает их в порядке возрастания сложности.
Вариант 1
- Измените поле
Questionbank.level
на IntegerField (с вариантами выбора, например[(10, 'easy'), (20, 'medium'), (30, 'hard')]
) (если у вас уже есть данные вопроса, это потребует миграции) 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")