2016-04-06 1 views
0

Я пытаюсь создать правило, чтобы ограничить пользователей видеть только свои записи в древовидном представлении в моем модуле, но это дает мне ошибку, что поле user_id не существует ...Odoo: ValueError: Неверное поле 'user_id' в листе

Heres моя модель:

class help_desk(models.Model): 
    _name = 'help_desk.help_desk' 

    name = fields.Char(string="Title", required=True) 
    number = fields.Char(string="Mobile", required=True) 

Вот правило:

<record model="ir.rule" id="per_user_rule"> 
      <field name="name">User: see the individual Record</field> 
      <field name="model_id" ref="model_help_desk_help_desk"/> 
      <field name="domain_force">['|',('user_id','=',False),('user_id','=',user.id)]</field> 
      <field name="groups" eval="[(4,ref('base.group_user'))]"/> 
</record> 

Вот Ошибка:

ValueError: Invalid field 'user_id' in leaf "<osv.ExtendedLeaf: ('user_id', '=', 9) on help_desk_help_desk (ctx:)>" 

Я угадываю, мне нужно добавить поле user_id в мою модель, но как я могу связать его с текущим пользователем?

ответ

1

Я нашел решение. Я добавил следующее поле в свою модель:

user_id = fields.Many2one('res.users', string='User', track_visibility='onchange', readonly=True, states={'draft': [('readonly', False)]}, default=lambda self: self.env.user) 

В качестве значения по умолчанию для текущего пользователя требуется текущий пользователь.

1

Изменение user_id в create_uid

create_uid - определяет пользователя, создавшего запись

<field name="domain_force">[('create_uid','=',uid)]</field> 
Смежные вопросы