2016-04-18 4 views
0

Mit Django ich überprüfen möchten, ob ein Datum 30 Tage in der Zukunft liegt, ist kwargs['datetime'] ein Datum aus DRF gegeben:Django unorderable Typen

from datetime import date, timedelta 
if kwargs['datetime'] > timedelta(days=30): 
    pass 

ich den Fehler: unorderable Typen: datetime.datetime()> datetime.timedelta()

Ist eine Django-Zeitzone nicht mit der Datenzeit kompatibel oder mache ich etwas anderes falsch?

+0

Eins ist ein absolutes, das andere ist ein Delta. Sie müssen das Delta in ein absolutes konvertieren (indem Sie ein anderes absolutes verwenden, um es zu beziehen). –

+0

'timedelta' berechnet' datetime', wenn Sie von einer anderen Datetime addieren oder subtrahieren. Ich bin mir nicht sicher, was du hier machen willst. – AKS

+0

@AKS aktualisiert OP – Prometheus

Antwort

3

Sie könnten timezone verwenden die aktuelle Datum Zeit zu bekommen:

from django.utils import timezone 
now = timezone.now() 

und zu prüfen, ob die Datumzeit von DRF nach 30 Tagen in der Zukunft ist es, Sie timedelta zu now

# or >= as per your requirement 
if kwargs['datetime'] > now + timedelta(days=30): 
    pass 

könnten hinzufügen Wenn die Zeitzonenunterstützung deaktiviert ist, können Sie die aktuelle Datumzeit wie folgt abrufen:

import datetime 
now = datetime.datetime.now() 

More Here

Verwandte Themen