Domanda
Non so perché, ma questa condizione non potrà mai valutare vero per me. Sto alimentandola datetime.today () nel file URL. Mi sto perdendo qualcosa?
Template:
{% load humanize %}
{{ entry.date|naturalday }} {# Evals to "today" #}
{% ifequal entry.date|naturalday "today" %}
True
{{ entry.date|date:"fA"|lower }} {{ entry.date|naturalday|title }}
{% else %}
False
{{ entry.date|naturalday|title }}
{% endifequal %}
Soluzione
Ho appena testato questo sotto Django 1.1.1 e funziona bene per me.
Quale versione di Django utilizzi?
Tuttavia, ci sono un paio di altri problemi che potrebbero essere causa problemi:
-
Ho anche notato che nella sua domanda avete
{% load humaize %}
, che contiene un errore di battitura (dovrebbe essere{% load humanize %}
). Non sono sicuro se questo è nel codice reale o solo nella tua domanda però. -
Se siete veramente utilizza
datetime.today()
nel vostrourls.py
, come dici tu, si prega di essere consapevoli che questo potrebbe causare problemi, in quanto il valore è solo andare a essere calcolato una volta, quando il dizionarioextra_context
viene creato (dal momento che la valore di "oggi" sarà sempre e solo essere calcolato una volta). Questo potrebbe significare il codice funzionerà il primo giorno l'applicazione è in esecuzione, quindi fallire il secondo giorno. È probabile che non si nota fino a quando questo si distribuisce in un ambiente in cui l'applicazione viene eseguito durante la notte senza essere riavviato.Se si vuole che sia davvero "oggi", basta passare nella funzione
datetime.today
piuttosto chedatetime.today()
. In questo modo il modello chiamerà su ogni rendering.