• 版块
  • 标签
  • 热门
  • 用户
  • 群组
Skins
  • Light
  • Default
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Quartz
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Slate
  • Solar
  • Superhero
  • Vapor
Collapse

Odoo 中文社区

請教關於新式osv.osv_memory wizard內,_default值希望動態由資料庫取出該如何施作

已定时 已固定 已锁定 已移动 Odoo 新手求助
8 帖子 2 发布者 3621 浏览
    • 从旧到新
    • 从新到旧
    • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • K 离线
    K 离线
    kk071700
    写于 最后由 编辑
    #1

    小弟希望在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])

    1 条回复 最后回复
    0
  • mrshellyM 离线
    mrshellyM 离线
    mrshelly
    写于 最后由 编辑
    #2

    _defaults 中 指定 function , 在 function 里,  你想怎么取就怎么取, 原系统 addons 里, 有相关的代码, 找一段阅读一下就明白了.

    返回的是OE特定的内容.

    如 integer 返回的是 一个integer

    char 返回的是一个 char

    同样, many2one 肯定就返回的是一个 many2one 了...

    看看别的代码中. many2one 的 default 如何写,你就知道如何写了...

    1 条回复 最后回复
    0
  • K 离线
    K 离线
    kk071700
    写于 最后由 编辑
    #3

    請教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]

    1 条回复 最后回复
    0
  • mrshellyM 离线
    mrshellyM 离线
    mrshelly
    写于 最后由 编辑
    #4

    你確認你的代碼同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]

    1 条回复 最后回复
    0
  • K 离线
    K 离线
    kk071700
    写于 最后由 编辑
    #5

    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]

    1 条回复 最后回复
    0
  • mrshellyM 离线
    mrshellyM 离线
    mrshelly
    写于 最后由 编辑
    #6

    请仔细看我的代码与你的代码.
    前前后后, 你都没有说明你的"出"的什么"错"!...

    1 条回复 最后回复
    0
  • K 离线
    K 离线
    kk071700
    写于 最后由 编辑
    #7

    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]

    1 条回复 最后回复
    0

  • 登录

  • 没有帐号? 注册

  • Login or register to search.
  • 第一个帖子
    最后一个帖子
0
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
  • 登录

  • 没有帐号? 注册

  • Login or register to search.