我是python和flask初学者,需要WTForms帮助:
我需要创建查询,根据QuerySelectMultipleField中选中的值进行过滤。在
在我的测试代码中,我有两个列表:
Dynamic (returned QuerySelectMultipleField) -–> list_d
Static (created manually) --> list_m
从QuerySelectMultipleField返回的列表是动态的,值例如:
[Jedna, Dva, Tri]
和手动创建的列表:
^{pr2}$我的观点:
^{3}$我的模板:
<div class="box-body">
{{ wtf.quick_form(form) }}
<p>Dynamic list: {{ list_d }}</p>
<p>Manual list: {{ list_m }}</p>
<p>ITEMS: {{ items }}</p>
</div>
我的型号:
class Item(db.Model):
__tablename__ = 'items'
id = db.Column(db.Integer, primary_key=True)
global_name = db.Column(db.String(64), unique=True, index=True)
item_name1 = db.Column(db.String(64), unique=True, index=True)
records = db.relationship('Record', backref='item', lazy='dynamic')
def __init__(self, global_name):
self.global_name = global_name
def __repr__(self):
return str(self.global_name)
我的表格:
def select_items():
return Item.query.all()
class TestForms(Form):
selectMultiple = QuerySelectMultipleField(query_factory=select_items,
allow_blank=True,
)
submit = SubmitField('Submit')
我的问题是:
手动创建使用列表时:
items = Item.query.filter(Item.global_name.in_(list_m)).all()
一切正常,在“项目”中,我可以看到由列表中的值筛选的值。
但是当使用list_d(从QuerySelectMultipleField返回)时:
items = Item.query.filter(Item.global_name.in_(list_d)).all()
我收到错误消息:
builtins.TypeError TypeError: expected string or buffer
“items”是无:/
解决方法可能很简单,但我目前的技能还不够。
谢谢你的回答。在
目前没有回答
相关问题 更多 >
编程相关推荐