2013-08-20 57 views
0

我正在嘗試在金字塔應用程序上使用帶有SQLAlchemy擴展的WTForms。SQLAlchemy/WTForms QuerySelectField

我做:

from wtforms import Form, TextField,TextAreaField, validators 
from wtforms.ext.sqlalchemy.fields import QuerySelectField 
from app.models import DBSession 
from app.models import ParentModel 


class NewChild(Form): 
    title = TextField('Title:', [validators.Required()]) 
    intro = TextAreaField('Introduction:') 
    body = TextAreaField('Body:') 
    parent = QuerySelectField(query_factory=DBSession().query(ParentModel).all) 

DBSession被定義爲

DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension())) 

查詢似乎工作,但在我的模板顯示正在讀

<app.models.ParentModel object at 0x9xxx> 

或一些這樣的。我究竟做錯了什麼?

+0

定義一個__str__方法ParentModel一類?也許你應該嘗試ParentModel.name或你想要顯示的東西 –

+0

我試過......實際上,我有一個類方法'DBSession.query(ParentModel).order_by(sa.desc(ParentModel.title))'顯示標題當作爲模板中的直接變量(即'variable = ParentModel.all()')調用時。這不會改變我在窗體上看到的輸出。 – brandonjschwartz

+0

你能告訴我們你的模板嗎? – ajkumar25

回答

2

您需要在ParentModel

+0

工作過,謝謝! :) – brandonjschwartz

+0

親愛的@javex請問如何在ParentModel上定義'__str__'方法? – Max

+1

@Max我真的不知道你的意思?你去'class ParentModel'可以找到的地方,在它的塊內你可以使用'def __str __(self):'。這是基本的python。否則我不明白你的問題。 – javex

相關問題