2016-07-22 8 views
0

Ich habe eine KlasseLegendes numerischen Datentyp in 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.Date) 
    airway_bill = db.Column(db.String(40)) 
    inh_auto_key = db.Column(db.Integer,primary_key=True) 

Jetzt bekomme ich ein Ergebnis aus einer Oracle-Datenbank wie unten

invc = vw_invoice_header.query.filter_by(inh_auto_key=20643519).first() 

Ich versuche, den Wert unter verwenden, um ein schön zu bekommen Preis in meiner jinja2 Vorlage formatierte

"{:8,.2f}".format(invc.total_price) 

dies einen Fehler wirft, Attribute: Typ Objekt ‚Numerisch‘ haben kein Attribut ‚untere‘ Ich habe keine Ahnung, wie man nur dieses numerische ausdrucken:/Ich bin ein newb zu Python seit einer Woche.

Dank Cameron

+0

Sind die 'db.column's in Ihrem Code nicht' db.Column'? – Suever

Antwort

2

Ihre ersten beiden Felder sollten db.Column nicht db.column (beachten Sie die Großschreibung) sein. db.column erstellt ein sqlalchemy.sql.elements.ColumnClause Objekt, während db.Column ein sqlalchemy.sql.schema.Column Objekt erstellt, wie Sie möchten.

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.Date) 
    airway_bill = db.Column(db.String(40)) 
    inh_auto_key = db.Column(db.Integer,primary_key=True) 

Sobald Sie dies zu korrigieren, wird der Numeric Datentyp verhalten sich wie erwartet.

+0

Vielen Dank! - Am Ende ist es immer etwas Einfaches – Cameron