Odoo中文社区可以通过以下三个域名访问:shine-it.net , odoocn.org,odoo.net.cn

原论坛用户的基本信息和发帖这里都予以保留,请注意:原论坛用户无需重新注册新用户,但是您的密码需要重置

开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

如果您登录系统碰到问题,请在微信公众号留言:

[已解决]在录入业务伙伴时,如何做才能让系统提示重复?



  • 我在录入业务伙伴信息时,当业务伙伴名称重复时系统不会重复,请问如何修改在录入业务伙伴名称重复时,系统可以提示错误?和res_users中login名称不能重复一样!

    谢谢!

    按官方论坛的方法可以解决
    http://www.openerp.com/forum/topic18021.html



  • 我在录入业务伙伴信息时,当业务伙伴名称重复时系统不会重复,请问如何修改在录入业务伙伴名称重复时,系统可以提示错误?和res_users中login名称不能重复一样!

    谢谢!

    按官方论坛的方法可以解决
    http://www.openerp.com/forum/topic18021.html



  • 我在res_user里找到了相应的代码?但是修改后加入res_partner中,并重新更新了模块,可是并不起作用,请问还有其它地方需要修改的吗?

      _sql_constraints = [
            ('name_uniq', 'unique (name)', 'The name of the group must be unique !')
        ]


  • 管理员

    _sql_constraints = [
            ('name_uniq', 'unique (name)', 'The name of the group must be unique !')
        ]
    不起作用。很有可能是因为你本来的name里面就有事重复的

    当添加_sql_constraints的时候,必须保证原始数据没有违反约束的,否则会添加不成功。



  • 谢谢joshua 的回复,按着你的提示我将所有的业务伙伴信息删除,再重新添加,但是还是不能控制重复提示,请问还有没有可能是其它的问题?


  • 管理员

    [code]
    _sql_constraints = [
            ('name_uniq', 'unique (name)', 'The name of the group must be unique !')
        ]
    [/code]
    这段代码看起来没什么问题
    你是写个新模块继承,还是直接在源代码上面改?
    更新完模块有没有重启服务器呢?



  • 您好,我是直接在原模块中进行的修改,我也新写了个简单的模块,不过还是不起作用!

    # -- encoding: utf-8 --
    from osv.orm import except_orm
    from osv import osv, fields
    class module_tpl(osv.osv):
        _name = 'module.tpl'
        _description = 'module template'
        _columns = {
            'name': fields.char('Sn Reference', size=64, required=True, select=True),
            'state': fields.selection([
                ('draft', 'Dtatf'),
                ('done', 'Done'),
                ('cancel', 'Cancelled')
                ], 'Sn State', readonly=True, help="SN state.", select=True)
        }
        _sql_constraints = [
            ('name_uniq', 'unique (name)', 'The name of the group must be unique !')
        ]
    module_tpl()



  • 我在官方论坛上,别人说这样可以实现,请问谁能帮我看一看,指导下?

    Add this class in your module ,not the existing module. one more thing never edit the existing module,just inherit the features in your own module and add the new features.

    class res_partner(osv.osv):
    _inherit = 'res.partner'
    _sql_constraints = [
    ('name', 'UNIQUE (name)', 'The name of the partner must be unique !')
    ]
    res_partner()


  • 管理员

    [quote author=lihaihe link=topic=2196.msg6997#msg6997 date=1287191234]
    您好,我是直接在原模块中进行的修改,我也新写了个简单的模块,不过还是不起作用!

    # -- encoding: utf-8 --
    from osv.orm import except_orm
    from osv import osv, fields
    class module_tpl(osv.osv):
        _name = 'module.tpl'
        _description = 'module template'
        _columns = {
            'name': fields.char('Sn Reference', size=64, required=True, select=True),
            'state': fields.selection([
                ('draft', 'Dtatf'),
                ('done', 'Done'),
                ('cancel', 'Cancelled')
                ], 'Sn State', readonly=True, help="SN state.", select=True)
        }
        _sql_constraints = [
            ('name_uniq', 'unique (name)', 'The name of the group must be unique !')
        ]
    module_tpl()

    [/quote]
    你这段代码是写了个新的object,为什么不直接继承res.partner呢?


    [quote author=lihaihe link=topic=2196.msg6998#msg6998 date=1287193889]
    我在官方论坛上,别人说这样可以实现,请问谁能帮我看一看,指导下?

    Add this class in your module ,not the existing module. one more thing never edit the existing module,just inherit the features in your own module and add the new features.

    class res_partner(osv.osv):
    _inherit = 'res.partner'
    _sql_constraints = [
    ('name', 'UNIQUE (name)', 'The name of the partner must be unique !')
    ]
    res_partner()
    [/quote]
    别人的回复也说了,写新模块继承比直接改代码来得安全,他这段就是继承了partner并且将一个约束条件添加进去


    [b]这里有个简单例子,是关于产品编号不能重复的,可以参考下[/b]
    http://openerp-china.org/wiki/index.php?title=Model



  • 谢谢您的回复,采用继承的方法实现起来没有问题,但是我新写的模块,要想控制字段能否重复,难道需要再写一个模块,控制字段重复?


  • 管理员

    哦,原来是另外一个问题新写的模块那个约束条件不生效, ;)
    [code]
        _sql_constraints = [
            ('name_uniq', 'unique (name)', 'The name of the group must be unique !')
        ]
    [/code]
    这段代码看起来没有什么问题,
    是不是你的数据库里面已经有了‘name_uniq’这个约束条件?
    1.试试直接在数据库里面测试下
    2.或者改个名字
    3.看看log



  • 官方的方法 不就是 Joshua 的方法么???????


登录后回复
 

与 Odoo 中文社区 的连接断开,我们正在尝试重连,请耐心等待