Разделение всех запросов запятой работает как AND, если вы хотите объединить несколько операций AND / OR, вы можете использовать объекты Q в Django.
например,
from django.db.models import Q
context['users'] = User.objects.exclude((Q(userprofile__user_role__role_title='Super Admin') & Q(is_superuser=True)) | Q(userprofile__user_is_deleted = True))
Причина, по которой этоможет быть не работает для вас, может быть, вы используете неправильный запрос?Возможные причины:
- Соответствует 'Super Admin', оно может храниться в нижнем регистре или как-то еще?попробуйте использовать
icontains
и использовать «super admin» в нижнем регистре - Нет пользователя, который имеет «Super Admin» в качестве заголовка, удален и одновременно является суперпользователем?Попробуйте запросить все объекты один за другим, посмотрите, есть ли пересечение?
Дайте мне знать, помогло ли это.