Du kan lägga till databasfunktioner till Django , för detta kan du lägga till en funktion för INTERVAL-satsen i postgres
class IntervalSeconds(Func):
function = 'INTERVAL'
template = "(%(expressions)s * %(function)s '1 seconds')"
Du kan sedan använda den här funktionen i dina frågor för att lägga till sekunder till en datumtid
YourModel.objects.annotate(
attr=ExpressionWrapper(
F("article__created_on") + IntervalSeconds(F("article__websitet__avg_time_in_seconds_to_reach_ep")),
output_field=models.DateTimeField()
),
)
Utdata från IntervalSeconds
funktionen är en 1 sekunds Postgres-intervall
multiplicerat med fältet som skickas till den. Detta kan läggas till och subtraheras från en tidsstämpel. Du kan skapa ett allmänt Interval
funktion som inte bara tar sekunder, det här är lite mer komplext
ExpressionWrapper
krävs för att konvertera resultatet till ett datetime-objekt