Существует такой тип контента модель:Невозможно записать правильную фильтрацию QuerySet
class CTModel(models.Model):
content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
object_id = models.PositiveIntegerField()
content_object = GenericForeignKey('content_type', 'object_id')
sport = models.ForeignKey(SportTypes)
QuerySets:
user_type = ContentType.objects.get_for_model(UserProfile)
current_sport = Sports.objects.get(name='Football')
rest_sports = Sports.objects.filter(name__in=RANDOM LIST OF GAMES).exclude(name='Football')
# Here I want to get all users who play 'Football'
users_play_football = CTModel.objects.filter(content_type=user_type, sport=current_sport)
# Here I want to get all users, who play Football,
# but at the same time, does not play any other games from 'rest_sports'
users = users_play_football.exclude(sport=rest_sports)
Я хочу, чтобы получить users
с некоторым содержанием (пользователи) только в том случае, если пользователи играют Футбол, и если пользователи играют в другие игры, users
не должен включать таких пользователей. Теперь, если пользователи играют в «Футбол» и «что-то» с rest_sports
, эти пользователи не исключены из users
.
Где моя ошибка?