請教關於新式osv.osv_memory wizard內,_default值希望動態由資料庫取出該如何施作
-
小弟希望在wizard的_default值希望動態由資料庫取出
請問該讀取資料庫的程式碼該在哪邊加入
如果說是要define一個 function又要如何在_defaults內讀取?
感恩大大不吝指點
Code:
class wizard_create_prescription(osv.osv_memory):
_name="create.prescription"
_description = "Create Prescription"
_columns = {
'x_optom_id': fields.many2one('x_optom', 'Optometrist',domain=[('x_optom_code','!=','EZ')]),
}
_defaults = {
'x_optom_id': '',
}
#Read DB
x_optom=x_optom
D=str(time.strftime("%Y-%m-%d", gmtime() ))
cr.execute('select x_optom from x_dailywork_record where x_date='+str(D))
resP = cr.fetchall()
for rowP in resP:
x_optom=str(rowP[0]) -
請教mrshelly大
小弟參照addons\base\res\res_compy.py當中 class res_compy(osv.osv)的_default呼叫function的寫法
以最單純的char測試,可是仍然出錯,似乎是_defaults的呼叫Function錯誤 可是在res_compy.py中就是如此呼叫
請教該如何修正 感恩
class wizard_create_prescription(osv.osv_memory):
_name="create.prescription"
_description = "Create Prescription"
_columns = {
'x_optom_id': fields.char('x_optom_id', size=15),
}
_defaults = {
'x_optom_id': _get_optom,
}
def _get_optom(self,cr,uid,ids):
x_optom_name='Fiona'
return x_optom_name
[quote author=mrshelly link=topic=4170.msg11189#msg11189 date=1338180172]
_defaults 中 指定 function , 在 function 里, 你想怎么取就怎么取, 原系统 addons 里, 有相关的代码, 找一段阅读一下就明白了.
返回的是OE特定的内容.
如 integer 返回的是 一个integer
char 返回的是一个 char
同样, many2one 肯定就返回的是一个 many2one 了...
看看别的代码中. many2one 的 default 如何写,你就知道如何写了...
[/quote] -
你確認你的代碼同res_company.py 的一樣?
[code=python]
...
class wizard_create_prescription(osv.osv_memory):
_name="create.prescription"
_description = "Create Prescription"
_columns = {
'x_optom_id': fields.char('x_optom_id', size=15),
}
def _get_optom(self,cr,uid,ids):
x_optom_name='Fiona'
return x_optom_name
_defaults = {
'x_optom_id': _get_optom,
}
...
[/code] -
mrshelly大 您好
小弟仿造res_company.py中class res_compy(osv.osv)的
Line 84: 'rml_header' : fields.text('RML Header', required=True),
Line 225: def _get_header(self,cr,uid,ids):
Line 269: 'rml_header':_get_header,
差異應該是一個為fields.text 另一個為fields.char
可是就算我改成fields.text也會出錯
[quote author=mrshelly link=topic=4170.msg11193#msg11193 date=1338191374]
你確認你的代碼同res_company.py 的一樣?
[code=python]
...
class wizard_create_prescription(osv.osv_memory):
_name="create.prescription"
_description = "Create Prescription"
_columns = {
'x_optom_id': fields.char('x_optom_id', size=15),
}
def _get_optom(self,cr,uid,ids):
x_optom_name='Fiona'
return x_optom_name
_defaults = {
'x_optom_id': _get_optom,
}
...
[/code]
[/quote] -
mrshelly大
經過您的提點,小弟再仔細比較-原來是function必須放置於_default之前
(因為以前寫Java Class就沒有這種順序性的要求,所以一時沒想到會有影響)
真是不好意思勞煩您再三提醒 感恩
另外一個提問--Save,Save & Edit,Cancel 等三個按鈕不顯現的問題
是否是在XML中訂義
<act_windows
view_type : "form"
/>
小弟本來就有寫 但是無作用
[quote author=mrshelly link=topic=4170.msg11196#msg11196 date=1338194528]
请仔细看我的代码与你的代码.
前前后后, 你都没有说明你的"出"的什么"错"!...
[/quote]