Możesz dodać funkcje bazy danych do Django , w tym celu możesz dodać funkcję dla instrukcji INTERVAL w postgresie
class IntervalSeconds(Func):
function = 'INTERVAL'
template = "(%(expressions)s * %(function)s '1 seconds')"
Następnie możesz użyć tej funkcji w swoich zapytaniach, aby dodać sekundy do daty i godziny
YourModel.objects.annotate(
attr=ExpressionWrapper(
F("article__created_on") + IntervalSeconds(F("article__websitet__avg_time_in_seconds_to_reach_ep")),
output_field=models.DateTimeField()
),
)
Wyjście IntervalSeconds
funkcja to 1-sekundowy interwał Postgresa
pomnożone przez przekazane do niego pole. Można to dodawać i odejmować od znacznika czasu. Możesz zrobić ogólny Interval
funkcja, która nie zajmuje tylko sekund, jest trochę bardziej złożona
ExpressionWrapper
jest wymagane do konwersji wyniku na obiekt typu datetime