DateTime fields sarà sempre memorizzare anche secondi; tuttavia, si può facilmente dire il modello per mostrare solo le ore ei minuti, con il filtro time
:
{{ value|time:"H:M" }}
dove "valore" è la variabile che contiene il campo datetime.
Ovviamente, è anche possibile ricorrere ad altri trucchi, come ritagliare i secondi dal campo mentre si salva; sarebbe necessario solo un piccolo cambiamento al codice nella visualizzazione gestione della forma, a fare qualcosa di simile:
if form.is_valid():
instance = form.save(commit=False)
instance.nosecs = instance.nosecs.strptime(instance.nosecs.strftime("%H:%M"), "%H:%M")
instance.save()
(nota: si tratta di un codice di brutto e non testato, tanto per dare l'idea)
Infine, dovresti notare che l'amministratore continuerà a visualizzare i secondi nel campo.
Tuttavia, non dovrebbe essere una grande preoccupazione, perché l'amministratore dovrebbe essere utilizzato solo da un tipo di utenti che può essere istruito a non utilizzare quella parte del campo.
Nel caso in cui si desideri applicare la patch anche all'amministratore, è comunque possibile assegnare il proprio widget al modulo e avere quindi l'amministratore che lo utilizza. Ovviamente, ciò significherebbe un notevole sforzo aggiuntivo.
fonte
2009-08-06 20:00:20
{{value | tempo: "H: i"}} ha lavorato per me. – GvS
Nelle maschere delle viste in classe Django l'impostazione di TIME_INPUT_FORMATS nelle impostazioni ha funzionato per me. https://docs.djangoproject.com/en/dev/ref/settings/#time-input-formats – maciek
@maciek: non ha funzionato per me. L'impostazione 'TIME_INPUT_FORMATS = [ '% H:% M', ] in' settings.py' non era abbastanza. Ho dovuto specificare il widget. – SaeX