私は python/Turbogears 初心者で、本当にあなたの助けが必要です。私は見つけたすべてのチュートリアルを読み、私の問題に関連していると信じています。
kwがデータベースから抽出されたフィールドとしてキーを取得し、それらを空にするためのメソッド/関数を作成する必要があります。フォームが送信された後、キーにフォームからの値が入力され、保存されますデータベース。
問題は、データベース内のフィールドに従ってデータ型が正しくないことです。このエラーが発生し続けます:「str」オブジェクトには属性「_sa_instance_state」がありません...
助けてください!
データベース構造:
orders table:
id
client_id
notes
offer_id
delivery_place_id
etc
また、それらのほとんどは、他のテーブルの他のフィールドに割り当てられた外部キーであることにも言及する必要があります...
パイソンコード:
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)