Как удалить из QuerySet по некоторому условию

У меня есть набор запросов, и, допустим, он описан следующим образом (в JSON)

{
  [
    {
      "name": "Alex",
      "01_correct_answers": 1,
      "02_correct_answers": 3,
    }, 
    {
      "name": "John",
      "01_correct_answers": null,
      "02_correct_answers": null,
    },
    {
      "name": "James",
      "01_correct_answers": null,
      "02_correct_answers": 3,
    },
  ]
}

Здесь 01 и 02 - это идентификаторы предметов. И у меня есть список этих ID, теперь как я могу просмотреть этот список ID и проверить набор запросов, если correct_answers студента для этих предметов не являются нулевыми, если они являются нулевыми (все предметы), просто удалите их из набора запросов. И, наконец, я хотел бы иметь отфильтрованный набор запросов, как показано ниже:

{
  [
    {
      "name": "Alex",
      "01_correct_answers": 1,
      "02_correct_answers": 3,
    }, 
    {
      "name": "James",
      "01_correct_answers": null,
      "02_correct_answers": 3,
    },
  ]
}

Как я могу достичь этого в Django?

Вы можете сделать запрос с помощью:

subjects = ['01', '02']

new_queryset = q.exclude(
    Q(*[(f'{sub}_correct_answers', None) for sub in subjects])
)
Вернуться на верх