2016-08-12 8 views
0

analysieren ich diesen Fehler, den Rest nicht analysieren konnte: '(datetime.datetime.now()' aus '(datetime.datetime.now()'django, Datetime in Vorlage konnte nicht

problematischen Code

{% if pr.update_news != "" and (datetime.datetime.now() - pr.update_date).days < 10 %} 

Scheint nicht Datetime zu verstehen. pr.update_date sein ein Datumsfeld in DB

Antwort

2

Die Django Template-Sprache ist begrenzt, kann man nicht beliebig Python einbetten können, wie Sie getan haben.

Sie können eine Modellmethode erstellen, die die Logik enthält. Zum Beispiel:

from datetime import datetime 

class PR(models.Model): 
    ... 
    def has_recent_news(self): 
     return self.update_news and (datetime.now() - self.update_date).days < 10 

Dann in Ihrer Vorlage, verwenden Sie die Methode:

{% if pr.has_recent_news %} 

Hinweis Sie nicht pr.has_recent_news() in der Vorlage tun. Sie tun pr.has_recent_news, und Django ruft die Methode automatisch auf.

+0

danke, ich habe es vor Ihrem Post aber auf die gleiche Weise behoben ... erinnerte sich, dass das "Schreiben Sie Ihre erste Django App" -Tutorial so etwas hat – ditsikts