This question has been flagged
3 Replies
4964 Views

I am trying to override the create method as follows.However its going into infinite loop. Can you please point to what i am doing wrong. How should i call the non overriden method from overriden method

 

class test(models.Model):
    _name = 'test'
    another = fields.Char(string='somefield', size=50)

    @api.model
    def create(self, vals):
        _logger.info("creating")
        super(test, self).sudo().create(vals)

Avatar
Discard
Best Answer

Hi,

@api.model
def create(self, vals):
    _logger.info("creating")
    return super(test, self).create(vals)

can you try this ? I think it is going good.

Avatar
Discard
Author

Thanks. Yes removing sudo() makes it work. Though i dont quiet understand why

Best Answer

https://www.odoo.com/forum/help-1/question/department-manager-problem-69090

Avatar
Discard
Best Answer

You forgot to return the result of the super. And I don't think you need the sudo either....

So instead try:

return super(test, self).create(vals)

Avatar
Discard
Author

Thank you very much. Removing sudo in the test class seems to be the difference. However in my real code i start getting the error "One of the documents you are trying to access has been deleted" without sudo. Anyways thanks for the above answer. Will try to find this one