저는 python/Turbogears 놈입니다. 정말 도움이 필요합니다. 내가 찾을 수있는 모든 자습서를 읽고 내 문제와 관련이 있다고 생각합니다.Turbogears noobie 데이터베이스에 추가하기 전에 kw의 내용을 어떻게 볼 수 있습니까?
데이터베이스에서 추출한 필드로 키를 가져와 키가 비어있게하려면 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)
코드를 읽기가 약간 어렵습니다 ... 영어로 설명을 쓰거나 쓸모가 없으면 삭제할 수 있습니까? – moschlar
또한 order_add_form 코드를 게시하십시오! – moschlar