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

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

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

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

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



  • 我在录入业务伙伴信息时,当业务伙伴名称重复时系统不会重复,请问如何修改在录入业务伙伴名称重复时,系统可以提示错误?和res_users中login名称不能重复一样!<br /><br />谢谢!<br /><br />按官方论坛的方法可以解决<br />http://www.openerp.com/forum/topic18021.html



  • 我在res_user里找到了相应的代码?但是修改后加入res_partner中,并重新更新了模块,可是并不起作用,请问还有其它地方需要修改的吗?<br /><br />  _sql_constraints = [<br />        ('name_uniq', 'unique (name)', 'The name of the group must be unique !')<br />    ]


  • 管理员

    _sql_constraints = [<br />        ('name_uniq', 'unique (name)', 'The name of the group must be unique !')<br />    ]<br />不起作用。很有可能是因为你本来的name里面就有事重复的<br /><br />当添加_sql_constraints的时候,必须保证原始数据没有违反约束的,否则会添加不成功。 <br />



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


  • 管理员

     <br /> _sql_constraints = [<br />&nbsp; &nbsp; &nbsp; &nbsp; (&#039;name_uniq&#039;, &#039;unique (name)&#039;, &#039;The name of the group must be unique !&#039;)<br />&nbsp; &nbsp; ]<br />
    

    <br />这段代码看起来没什么问题<br />你是写个新模块继承,还是直接在源代码上面改?<br />更新完模块有没有重启服务器呢?



  • 您好,我是直接在原模块中进行的修改,我也新写了个简单的模块,不过还是不起作用!<br /><br /># -- encoding: utf-8 --<br />from osv.orm import except_orm<br />from osv import osv, fields<br />class module_tpl(osv.osv):<br />    _name = 'module.tpl'<br />    _description = 'module template'<br />    _columns = {<br />        'name': fields.char('Sn Reference', size=64, required=True, select=True),<br />        'state': fields.selection([<br />            ('draft', 'Dtatf'),<br />            ('done', 'Done'),<br />            ('cancel', 'Cancelled')<br />            ], 'Sn State', readonly=True, help="SN state.", select=True)<br />    }<br />    _sql_constraints = [<br />        ('name_uniq', 'unique (name)', 'The name of the group must be unique !')<br />    ]<br />module_tpl()<br />



  • 我在官方论坛上,别人说这样可以实现,请问谁能帮我看一看,指导下?<br /><br />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.<br /><br />class res_partner(osv.osv):<br />_inherit = 'res.partner'<br />_sql_constraints = [<br />('name', 'UNIQUE (name)', 'The name of the partner must be unique !')<br />]<br />res_partner()


  • 管理员

    [quote author=lihaihe link=topic=2196.msg6997#msg6997 date=1287191234]<br />您好,我是直接在原模块中进行的修改,我也新写了个简单的模块,不过还是不起作用!<br /><br /># -- encoding: utf-8 --<br />from osv.orm import except_orm<br />from osv import osv, fields<br />class module_tpl(osv.osv):<br />    _name = 'module.tpl'<br />    _description = 'module template'<br />    _columns = {<br />        'name': fields.char('Sn Reference', size=64, required=True, select=True),<br />        'state': fields.selection([<br />            ('draft', 'Dtatf'),<br />            ('done', 'Done'),<br />            ('cancel', 'Cancelled')<br />            ], 'Sn State', readonly=True, help="SN state.", select=True)<br />    }<br />    _sql_constraints = [<br />        ('name_uniq', 'unique (name)', 'The name of the group must be unique !')<br />    ]<br />module_tpl()<br /><br />[/quote]<br />你这段代码是写了个新的object,为什么不直接继承res.partner呢?<br /><br /><br />[quote author=lihaihe link=topic=2196.msg6998#msg6998 date=1287193889]<br />我在官方论坛上,别人说这样可以实现,请问谁能帮我看一看,指导下?<br /><br />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.<br /><br />class res_partner(osv.osv):<br />_inherit = 'res.partner'<br />_sql_constraints = [<br />('name', 'UNIQUE (name)', 'The name of the partner must be unique !')<br />]<br />res_partner()<br />[/quote]<br />别人的回复也说了,写新模块继承比直接改代码来得安全,他这段就是继承了partner并且将一个约束条件添加进去<br /><br /><br />[b]这里有个简单例子,是关于产品编号不能重复的,可以参考下[/b]<br />http://openerp-china.org/wiki/index.php?title=Model



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


  • 管理员

    哦,原来是另外一个问题新写的模块那个约束条件不生效, ;)<br />

    <br />&nbsp; &nbsp; _sql_constraints = [<br />&nbsp; &nbsp; &nbsp; &nbsp; (&#039;name_uniq&#039;, &#039;unique (name)&#039;, &#039;The name of the group must be unique !&#039;)<br />&nbsp; &nbsp; ]<br />
    

    <br />这段代码看起来没有什么问题,<br />是不是你的数据库里面已经有了‘name_uniq’这个约束条件?<br />1.试试直接在数据库里面测试下<br />2.或者改个名字<br />3.看看log



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