Do Djanga můžete přidat funkce databáze , za tímto účelem můžete přidat funkci pro výkaz INTERVAL v postgres
class IntervalSeconds(Func):
function = 'INTERVAL'
template = "(%(expressions)s * %(function)s '1 seconds')"
Tuto funkci pak můžete použít ve svých dotazech k přidání sekund k datu a času
YourModel.objects.annotate(
attr=ExpressionWrapper(
F("article__created_on") + IntervalSeconds(F("article__websitet__avg_time_in_seconds_to_reach_ep")),
output_field=models.DateTimeField()
),
)
Výstup parametru IntervalSeconds
funkce je 1 sekunda Postgres interval
vynásobené polem, které mu bylo předáno. To lze přidat a odečíst od časového razítka. Můžete vytvořit obecný Interval
funkce, která nezabere jen sekundy, je o něco složitější
ExpressionWrapper
je vyžadován k převodu výsledku na objekt datetime