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

I have a user model and an incident model. And there's a profile page for users where I want to display a certain count of how many incidents are assigned to the user. This count gets changed every time either a new incident is created or if it is updated. So I want to write something in the create/write method of the incident model so that whenever the user_id field in the incident record pertains to a certain user record, I need to update the count in that user's record. This way we can keep the count displayed on the user's profile up to date. 

Not sure how I will access and update the value of the other model from the create/write methods of this model. 

形象
丢弃
最佳答案

i don't think you need to override the create/write method just put new field as a compute field for displaying counted incident: like example: in test.incident model has a relation to res.users/res.partner and you want to show how many incidents related to each user,

_inherit = 'res.users'

counted_incident = fields.Integer(compute="_compute_counted_incidents")


@api.multi

def _compute_counted_incidents(self):

    for rec in self:  

        incidents = self.env['test.incident'].search([('user_id', '=', rec.id)])

        rec.counted_incident   = len(incidents)

then display the compute field in the views 

形象
丢弃
编写者

I did this and for my use case it's not a simple counting. I have to selectively count incidents based on some domain filters. So when I do this I get the count but when I update an existing incident that alters it's eligibility to be counted the count number doesn't change. I have to create a new incident for it the count to get updated.

That's why I think that having this logic in the incident model is more accurate. Hope this makes sense.

i don't get what you mean can you share your code?

编写者

Hi sorry, you were right in your answer. I actually had done what you suggested but I guess I had an error, so when I fixed that, it was working again. Please ignore my comment.

相关帖文 回复 查看 活动
2
1月 16
35772
0
1月 23
1709
1
8月 20
4826
1
4月 20
5366
1
9月 19
8993