跳至内容
菜单
此问题已终结
2 回复
4746 查看

Hello, please help. I wanted to filter the drop down list of many2one field base in the current user. My objective is, inside the sales order form, i've added a field called salesperson_code which is a many2one field where the source is a customize table I have created:

class SalesPersonCode(models.Model):
_name = 'sale.person.code'
_rec_name = 'salesperson_code'

salesperson = fields.Many2one('res.users', string='Salesman')
salesperson_code = fields.Char(string='Code')
Added field in sale.order table:

class SalesSampleCode(models.Model):
_inherit = 'sale.order'
    salesperson_code = fields.Many2one('sale.person.code', string='Salesman Code')

XML code:

<xpath expr="//field[@name='payment_term_id']" position="after">
<field name="salesperson_code" options="{'no_create': True, 'no_create_edit':True}"/>
</xpath>

Now I only want the many2one drop down, to list the salesman code that is assigned to a particular salesman, so my filter should be domain = [( 'salesperson' , '=', user.id )]. What is the right way to implement this.?

I was able to make it work using onchange but what I really want is, if he/she create or edit the form, it should be the right salesman code be given to the drop down list of the many2one field. Any help will be high appreciated. Thank you.

形象
丢弃
最佳答案

Hi,

I suggest you to use ir.rule, record rules are conditions that records must satisfy for an operation (create, read, write or delete) to be allowed. 

See the example in the below code : 

<record id="salesperson_groups_rule" model="ir.rule">
<field
name="name">Sales person: Access own sales person only</field>
<field
name="model_id" ref="model_sale_person_code"/>
<field
name="domain_force">[('salesperson', '=', user.id)]
</field>
</record>

Best regards!

形象
丢弃
编写者

Best solution. Thank you very much brother Sylvain. God bless.

You're welcome! God bless you!

最佳答案

Right answer

形象
丢弃
相关帖文 回复 查看 活动
3
8月 25
1540
3
7月 24
4433
3
11月 20
4210
1
11月 18
5711
5
2月 18
4818