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 %}
È stato utile?

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:

  1. 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ò.

  2. Se siete veramente utilizza datetime.today() nel vostro urls.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 dizionario extra_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 che datetime.today(). In questo modo il modello chiamerà su ogni rendering.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top