Не корректно работает запрос Django ORM

У меня есть модели:

class Emp(AbstractUser):
    username = None
    emp_mail = models.EmailField(
        _('email address'),
        unique=True,
    )
    USERNAME_FIELD = 'emp_mail'
    REQUIRED_FIELDS = []
    EMAIL_FIELD = 'emp_mail'
    per_no = models.PositiveIntegerField('Pers.No.', blank=True, null=True)
    chief_mail = models.EmailField('Почта руководителя', max_length=100, blank=True, null=True)
    roles_name = models.ManyToManyField('Rolesl', blank=True, verbose_name='Роли')
    current_pos = models.ForeignKey('Position', blank=True, null=True, on_delete=models.SET_NULL,
                                    verbose_name='Позиция')
    department = models.ForeignKey('Departments', blank=True, null=True, on_delete=models.SET_NULL,
                                   verbose_name='Отдел')
    cur_id = models.ManyToManyField('Curicls', max_length=200, verbose_name='Дополнительные курсы', blank=True)
    training_curs = models.ManyToManyField('Curicls', max_length=200, verbose_name='Тренер каких курсов', blank=True,
                                           related_name='training_curs')
    objects = CustomUserManager()

    class Meta:
        verbose_name = 'Пользователь'
        verbose_name_plural = 'Пользователи'

    def __str__(self):
        return self.emp_mail


class Docs(models.Model):
    ehs = 'E'
    qms = 'Q'
    STAT = [
        (ehs, 'EHS'),
        (qms, 'QMS'),
    ]
    doc_id = models.CharField('ID документа', max_length=200, null=True, unique=True)
    doc_title = models.CharField('Название документа', max_length=200, null=True)
    hyp_name = models.TextField('Ссылка на документ', null=True, blank=True)
    update_date = models.DateField(default=timezone.now(), verbose_name='Дата обновления документа')
    version = models.PositiveIntegerField('Версия документа', default=1)
    department = models.CharField(max_length=1, choices=STAT, default='Q', verbose_name='Модуль обучения')
    active = models.BooleanField('Активный статус', default=True,
                                 help_text='Да если документ является актуальным, Нет - если больше не актуален')

    def __str__(self):
        return self.doc_id

    class Meta:
        verbose_name = 'Документ'
        verbose_name_plural = 'Документы'

class Curicls(models.Model):
    ehs = 'E'
    qms = 'Q'
    STAT = [
        (ehs, 'EHS'),
        (qms, 'QMS'),
    ]
    department = models.CharField(max_length=1, choices=STAT, default='Q', verbose_name='Модуль обучения')
    curic_id = models.CharField('ID курса', max_length=200, null=True, blank=True, unique=True)
    cur_title = models.CharField('Название курса', max_length=200, unique=True)
    doc_id = models.ManyToManyField(Docs, blank=True, through=CurDocs)
    training = models.ManyToManyField(Trainings, blank=True, verbose_name='Тренинги')
    quiz = models.ManyToManyField(Quiz, verbose_name='Тесты', blank=True)
    opening_order = models.BooleanField(default=True, verbose_name='Открытие модулей по порядку',help_text='Если стоит, то модули открыаются по порядку.')
    cur_picture = models.ImageField('Картинка', blank=True, upload_to='curicls/')

class Rolesl(models.Model):
    role_name = models.CharField('Название роли', max_length=100, unique=True)
    cur_id = models.ManyToManyField(Curicls, max_length=200, verbose_name='ID курса', blank=True)

    def __str__(self):
        return self.role_name

    class Meta:
        verbose_name = 'Роль'
        verbose_name_plural = 'Роли'

class Progress(models.Model):
    mail_sent = 'M'
    done = 'D'
    STAT = [
        (mail_sent, 'Уведомлен'),
        (done, 'Прошел'),
    ]
    emp_name = models.ForeignKey(Emp, on_delete=models.CASCADE, verbose_name='Сотрудник')
    doc_title = models.ForeignKey(Docs, on_delete=models.CASCADE, verbose_name='Документ')
    date_update = models.DateField(verbose_name='Дата прохождения', blank=True, null=True)
    date_create = models.DateField(default=timezone.now(), verbose_name='Дата начала прохождения', help_text='Дата, которая указывает, когда документ был добавлен для прохождения сотруднику')
    dead_line_date = models.DateField(verbose_name='Дедлайн', blank=True, null=True)
    version = models.PositiveIntegerField('Версия документа для текущего прогресса')
    approve_sertificate = models.FileField(verbose_name='Сертификат', blank=True, null=True, upload_to='certificates/', help_text='Файл с сертификатом')
    active_status = models.BooleanField(default=True, verbose_name='Активный статус документа', help_text='Если да, то документ активный и его прогресс считается, если нет, то этот прогресс не считается')
    add_status = models.BooleanField(default=False, verbose_name='Дополнительный статус', help_text='Если да, то документ является дополнительным для данного сотрудника, нет, то ')
    status = models.CharField(max_length=1, choices=STAT, default='M')

    def __str__(self):
        return str(self.pk)

    class Meta:
        verbose_name = 'Прогресс по документам'
        verbose_name_plural = 'Прогресс по документам'

В модели прогресс сохраняется прогресс пользователя согласно, назначенным ролям. Но если меняется версия документа, то запись о прогрессе становится неактивной, и при сохранении пользователя, должен в таких случаях сформироваться прогресс по таким документам.

В сигнале post save модели EMP я делаю это, но почему-то запрос ничего не выдает, хотя по данным должен.

docs_to_create = Docs.objects.filter(curicls__rolesl__emp=emploer,active=True).exclude(Q(progress__emp_name=emploer) &Q(progress__doc_title__curicls__rolesl__emp=emploer) & Q(progress__active_status=True)).distinct()

Ответы (0 шт):