Skip to Content
Menu
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
To pytanie dostało ostrzeżenie
1 Odpowiedz
14312 Widoki

I noticed that it is used in `hr.employee.public`:

```

image_128 = fields.Image("Image 128", compute='_compute_image', compute_sudo=True)


def _compute_image(self):

    for employee in self:

    employee_id = self.sudo().env['hr.employee'].browse(employee.id)

    ...

```
in the compute method sudo() is used anyways, which implies that compute_sudo doesn't change the self in the compute method to be equivalent to self.sudo();


Then what is the point in adding `compute_sudo`?

Awatar
Odrzuć
Najlepsza odpowiedź

Compute sudo is described in the docs as  "whether the field should be recomputed as superuser to bypass access rights (by default True for stored fields, False for non stored fields)"

Awatar
Odrzuć
Autor

but what does it mean? the user in the method is not the superuser unless sudo() is explicitly used.

As sudo bypasses access rights ,in compute_sudo compute field while computing itself again it will not look for the users access rights and compute it as its for superuser.

Powiązane posty Odpowiedzi Widoki Czynność
compute issue Rozwiązane
1
maj 21
3832
2
maj 25
1001
2
sie 22
5405
2
lip 22
7150
1
gru 20
37932