Você pode adicionar funções de banco de dados ao Django , para isso você pode adicionar uma função para a instrução INTERVAL em postgres
class IntervalSeconds(Func):
function = 'INTERVAL'
template = "(%(expressions)s * %(function)s '1 seconds')"
Você pode usar esta função em suas consultas para adicionar segundos a uma data e hora
YourModel.objects.annotate(
attr=ExpressionWrapper(
F("article__created_on") + IntervalSeconds(F("article__websitet__avg_time_in_seconds_to_reach_ep")),
output_field=models.DateTimeField()
),
)
A saída do
IntervalSeconds
função é um intervalo Postgres
de 1 segundo multiplicado pelo campo passado para ele. Isso pode ser adicionado e subtraído de um carimbo de data/hora. Você pode fazer um Interval
genérico função que não leva apenas segundos, isso é um pouco mais complexo O
ExpressionWrapper
é necessário para converter o resultado em um objeto de data e hora