Вложенный запрос в Django, нужно сравнить время обработки

time_limit = timezone.now() - timedelta(hours=30) time_limit_str = time_limit.strftime('%Y-%m-%d %H:%M:%S')

in_review_records = RequestedData.objects.filter( Q(status='In Review') & ( Q(additional_details__isnull=True)| Q(additional_details__processing_details__isnull=True) | ( Q(additional_details__processing_details__has_key=account_name) & Q(additional_details__processing_details__account_name__lte=time_limit_str) ) | ( Q(additional_details__processing_details__isnull=False) &
~Q(additional_details__processing_details__has_key=account_name) ) ) ).annotate(processing_details=KeyTransform('processing_details', 'additional_details')).annotate(account_name=KeyTransform(account_name, 'processing_details'))

##################

account = "abc" Здесь я пытаюсь получить все записи если дополнительные_детали пустые если processing_details в additional_details пуст если processing_details имеет ключ account то проверьте, что значение (которое является временем обработки) не находится в последние 30 часов и если у processing_details есть ключи, но это не "abc", мы можем включить его

я перепробовал столько всего, но ничего не помогает

Последний формат дополнительного поля additional_details, которое является json-полем модели, выглядит как JSONField(default=dict, null=True, blank=True) "additional_details" : { "processing_details": { "sas": "2024-07-19 11:03:20", "aditi account": "2024-07-20 11:03:20", "irs-account-2": "2024-07-23 11:03:20"}}

Вернуться на верх