美文网首页pythonodoo
odoo selection字段类型的动态添加

odoo selection字段类型的动态添加

作者: 隔壁小红馆 | 来源:发表于2020-06-19 14:22 被阅读0次

    Selection字段类型一般作为下拉列表显示
    selection的选项内容基本是固定,但是针对一些特殊要求

    • 根据权限组显示不同的selection内容的
    • 也可以通过动态创建进行选项内容的设置。
    1. 常规的Selection内容(固定的)
    image.png
    2. 权限组显示不同的selection内容

    selection=’_selection_filter’,表示引用_selection_filter函数进行不同权限组之间的内容显示



    _selection_filter函数的定义。


    image.png
    res_filter = [
    (‘none’, _(‘All products’)),
    (‘category’, _(‘One product category’)),
    (‘product’, _(‘One product only’)),
    (‘partial’, _(‘Select products manually’))]
    

    为selection内容初始化的列表
    后面的判断语句,则是根据当前用户所在的权限组进行selection内容的添加
    例如:
    if self.user_has_groups('stock.group_tracking_owner'),用户存在stock模块下定义的group_tracking_owner组中,则在原有的列表中加入’owner’,'product_owner’这两个键值对内容,

    res_filter += [('owner', _('One owner only')), ('product_owner', _('One product for a specific owner'))]
    

    将用户放入不同的权限组则可以看到不同的selection下拉内容

    3.动态创建selection内容

    创建 group 字段
    group = fields.Selection(string='物料分组', selection='_selection_group')
    创建_selection_group函数
    定义一个空的sort_group列表,在smelting.ingredients(自己的模型)模型下进行搜索 ,并将筛选到的数据加入列表并返回
    此_selection_group是针对模型的操作,@api.model,不能对记录集进行操作


    image.png

    效果如下:


    制作不易,点赞鼓励哈

    相关文章

      网友评论

        本文标题:odoo selection字段类型的动态添加

        本文链接:https://www.haomeiwen.com/subject/tfvvxktx.html