2016-07-26 40 views
0

來當我再次有outputing SQL鍊金術在瓶/ Jinja2的日期日期在Jinja2的,從SQLAlchemy的

我的類定義爲

class vw_invoice_header(db.Model): 

__tablename__ = "vw_invoice_header" 
tax_amount = db.Column(db.Numeric) 
total_price = db.Column(db.Numeric) 
invc_number = db.Column(db.String(40)) 
term_code = db.Column(db.String(20)) 
order_date = db.Column(db.DateTime) 
airway_bill = db.Column(db.String(40)) 
inh_auto_key = db.Column(db.Integer,primary_key=True) 
invoice_date = db.Column(db.DateTime) 
company_po_number = db.Column(db.String(30)) 
ship_name = db.Column(db.String(50)) 
ship_address1 = db.Column(db.String(35)) 
ship_address2 = db.Column(db.String(35)) 
ship_address3 = db.Column(db.String(35)) 
ship_address4 = db.Column(db.String(35)) 
ship_address5 = db.Column(db.String(35)) 
attention = db.Column(db.String(50)) 
phone_number = db.Column(db.String(20)) 
email_address = db.Column(db.String(60)) 
bill_name = db.Column(db.String(50)) 
bill_address1 = db.Column(db.String(35)) 
bill_address2 = db.Column(db.String(35)) 
bill_address3 = db.Column(db.String(35)) 
bill_address4 = db.Column(db.String(35)) 
bill_address5 = db.Column(db.String(35)) 
so_numbers = db.Column(db.String(4000)) 
company_ref_numbers = db.Column(db.String(4000)) 
currency = db.Column(db.String(40)) 
is_complete = db.Column(db.String(1)) 

我做了

invc = vw_invoice_header.query.filter_by(inh_auto_key=20643519).first() 
另一個問題

爲什麼

{{invc.invoice_date.strftime('%d %b %y') }} 

給我預期的效果,但 -

{{ '%d %b %y'.format(invc.invoice_date) }} 

不會爲我的生活工作 - 我不太得到inconsitency。我也有一個數字數據類型的問題,而不得不將其轉換爲浮動獲得「」 .format工作...

謝謝

+1

你怎麼會預計這將工作?你能期待這將在純python shell中工作嗎?那麼我們將聯繫jinja2並要求他們編寫代碼以支持您提及的格式... \ –

+0

我假設文檔實際上是正確的日期.__格式__(格式) 與date.strftime()相同。這可以在使用str.format()時爲日期對象指定格式字符串。有關格式化指令的完整列表,請參閱strftime()和strptime()行爲。 – Cameron

回答

0

隨着文檔狀態,它的工作。 我忘了包裹{}佔位符的實際字符串, 所以其

{{ '{:%d %b %y}'.format(invc.invoice_date) }} 

謝謝拉賈對振奮評論:P