Du kan tilføje databasefunktioner til Django , til dette kan du tilføje en funktion til INTERVAL-sætningen i postgres
class IntervalSeconds(Func):
function = 'INTERVAL'
template = "(%(expressions)s * %(function)s '1 seconds')"
Du kan derefter bruge denne funktion i dine forespørgsler til at tilføje sekunder til en dato/klokkeslæt
YourModel.objects.annotate(
attr=ExpressionWrapper(
F("article__created_on") + IntervalSeconds(F("article__websitet__avg_time_in_seconds_to_reach_ep")),
output_field=models.DateTimeField()
),
)
Outputtet af IntervalSeconds
funktionen er et 1 sekunds Postgres-interval
ganget med det felt, der sendes til den. Dette kan tilføjes og trækkes fra et tidsstempel. Du kan lave et generisk Interval
funktion, der ikke kun tager sekunder, det er lidt mere komplekst
ExpressionWrapper
er påkrævet for at konvertere resultatet til et datetime-objekt