Как удалить из 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])
)