Olá! Por favor, preciso de ajuda!
Quando eu executo esse código
In [1]: qs = Cupons.objects.delivery().filter(created__gt
...: e=datetime(2020,8, 11))
In [2]: set(qs)
Eu tomo um erro de timeout:
QueryCanceled: canceling statement due to statement timeout
e
OperationalError: canceling statement due to statement timeout
Sendo assim, eu tenho um outro exemplo:
def filter_cupons_por_notas(fatura):
fatura_sem_notas = fatura.filter(cupons__isnull=True).values_list('id', flat=True)
fatura_com_falha_cupons = fatura.filter(
cupons__status__in=CUPOM_STATUS_DE_FALHA
).values_list('id', flat=True)
fatura_com_sucesso_ou_processando_cupons = fatura.filter(
cupons__status__in=[CUPONS_SUCESSO, CUPONS_PROCESSANDO]
).values_list('id', flat=True)
fatura_sem_valido_cupons = \
set(fatura_com_falha_cupons) - set(fatura_com_sucesso_ou_processando_cupons)
return set(ichain(fatura_sem_notas, fatura_sem_valido_cupons))
Nessa parte em específico:
set(fatura_com_sucesso_ou_processando_cupons)
return set(ichain(fatura_sem_notas, fatura_sem_valido_cupons)
Eu gostaria de substituir o set por queryset para evitar ter timeout. Agradeço a ajuda!