2014-11-21 9 views
8

La data nel mio ordine di vendita è attualmente in mostra come:Come posso formattare la data nel report Qdo Odoo 8?

Fecha: 21/11/2014 16:59:15 

voglio mostrare qualcosa del genere:

Fecha: Surco, 21 de Noviembre del 2014 

Ho provato ad utilizzare t-esc con strftime ma questo non funziona:

<span t-esc="o.date_order.strftime('%Y')" /> 

risposta

8

Sembra che sia o.date_order ma non è un oggetto datetime ma una stringa. Utilizzando il modulo time è la strada da percorrere:

<span t-esc="time.strftime('%A, %d %B %Y',time.strptime(o.date_order,'%Y-%m-%d %H:%M:%S'))"/> 
+0

penso la risposta di Sebastian è più pulita e più chiara. –

+1

Ma la sua soluzione non risolve il problema –

+1

il formato della data nell'attributo t-field-options utilizza il pattern LDML, quindi {"format": "EEEE d MMMM y"} otterrà il risultato desiderato. http://www.unicode.org/reports/tr35/tr35-dates.html#Date_Format_Patterns –

17

Provare a utilizzare:

<span t-field="o.date_order" t-field-options='{"format": "d MMMM y"}'/> 

Risultato: 21 Noviembre 2014

+0

Grazie! È anche meglio. Ma come posso formattare come: "Surco, 21 de Noviembre del 2014" usando questo metodo? –

+0

Sto anche provando a farlo. Non posso ancora. – Sebastian

+0

Triste, non è possibile ottenere il formato dalla variabile LANG (o da qualsiasi), poiché le opzioni di campo t devono essere un oggetto JSON rigido (non un ditt di python). – Yajo

0

sentirti anche possibile impostare la data personalizzato formiato utilizzando la funzione

Aggiungere la funzione nel file your_report.py

class member_branch_mov(report_sxw.rml_parse): 
    def __init__(self, cr, uid, name, context): 
     super(member_branch_mov, self).__init__(cr, uid, name, context) 
     self.localcontext.update({ 
      'time': time, 
      'get_formate_header_date':self._get_formate_header_date  
     }) 


    def _get_formate_header_date(self, objects): 
     header_date='' 
     if self.end_date: 
      date = datetime.strptime(self.end_date,'%Y-%m-%d') 
      header_date=date.strftime('%d %B %Y') 
     return header_date.upper() 

sentire self.end_date viene dal campo guidata

Aggiungi nel rapporto your_report_view.xml File

<t t-if="get_formate_header_date(docs)"><span t-esc="get_formate_header_date(docs)" /></t> 
Problemi correlati