我是一条巨蟒/土拨鼠,我真的需要你的帮助。我阅读了所有我能找到并相信与我的问题相关的教程。
我需要为kw创建一个方法/函数,以获取从数据库中提取的字段的键,并使其为空,然后在表单提交之后,将键填充到表单中的值中,然后存储在数据库中。
问题是,根据数据库中的字段,数据类型不正确。我一直收到这样的错误:'str‘对象没有属性’_sa_instance_state‘.
请帮帮我!
数据库结构:
orders table:
id
client_id
notes
offer_id
delivery_place_id
etc我还应该指出,其中大多数是分配给其他表中其他字段的外键.
python代码:
class OrderController(RestController):
model = m.Order
order_table = OrderTable(DBSession)
order_filler = OrderTableFiller(DBSession)
order_add_form = OrderAddForm(DBSession)
order_edit_form = OrderEditForm(DBSession)
order_edit_filler = OrderEditFiller(DBSession)
@validate(order_add_form, error_handler = None)
@expose("maivic.templates.order.new")
def new(self, **kw):
#assert len(kw['notes'])==0
#flash ( 'Rainbow honey double rainbow')
"""aici trebuie creata o metoda pentru a vedea ce date avem inainte de form si
dupa submit"""
#tmpl_context.widget = self.order_add_form
if 'sprox_id' in kw:
del kw['sprox_id']
tmpl_context.widget = self.order_add_form
#1 start afiseaza new dar nu face nimic
if len(kw) > 0: #pt a nu aduga un order nul
"""
for k in kw.keys():
if not kw[k]:
del kw[k]"""
print kw
"""if 'client' in kw and not isinstance(kw['client'], list):
kw['client'] = [kw['client']] """
order = m.Order(**kw)
DBSession.add(order)
flash('order added')
#redirect('/order')
else:
print "empty form"
#end1
return dict(page="new", value = kw) 发布于 2013-08-15 07:48:18
查看tw2.sqla (https://github.com/toscawidgets/tw2.sqla/blob/develop/tw2/sqla/widgets.py)中的验证器,您应该能够将它们用作表单上的字段验证器。它们将确保在*_id字段中输入的if被转换为相应的模型对象(如果不存在,则引发验证错误)。
https://stackoverflow.com/questions/18143464
复制相似问题