Режим «все темы сразу» — это просто без фильтра по одной: взять все карточки. Но наткнулся на нюанс: не хочу два раза одну карточку из разных источников. Решение оказалось простым — distinct/однкратный запрос без дублей. Стыдно было осознавать, что я не учёл повтор сразу, зато понял ценность «без дубликатов» в данных.

Нейтрально: когда источник один, дублей нет; когда мешаю выборки — нужно следить за уникальностью.

cards = Card.objects.filter(topic__in=topics).distinct()
# .distinct() страхует от повторной строки при джойне по темам

Вроде мелочь, а голова заработала архитектурнее: думать о «а что если строк в мешанине несколько» до, а не после бага. Тренажёр учит не только Python, но и внимательности к данным.