Skip to Content
Menu
This question has been flagged

I have the following field, which is a Many2many Tags exatcly like in Employees module:


category_ids = fields.Many2many(

        'it.recruitment.freelancer.category', 'freelancer_category_rel',

        'freelancer_id', 'category_id', 

        string='Matching Positions',

        ondelete='cascade',

        default='_create_default_freelancer')


But instead of Employees, I'm using Freelancers. I've create a model to hold this tags: it.recruitment.freelancer.category. 

Now I want to every time I create a new Freelancer, the category_ids field has already the 'Freelancer' tag. 


This was my attempt:


def _create_default_freelancer(self):

        model = 'it.recruitment.freelancer.category'

        return self.env[model].search([{'name': "Freelancer"}]).id


Note: The 'Freelancer' tag is added on data.xml when you install the module. 

Avatar
Discard

Hello Miguel,

What determines that you have created a new freelancer? What condition is met for the employee to be a freelancer?

Or are you saying all employees are freelancers?

Thanks,

Best Answer
category_ids = fields.Many2many(
'it.recruitment.freelancer.category', 'freelancer_category_rel',
'freelancer_id', 'category_id', 
string='Matching Positions',
ondelete='cascade',
default=lambda self:self.env['it.recruitment.freelancer.category'].search([('name', '=', 'Freelancer')]).ids)


Avatar
Discard
Best Answer

Hi,

You can use the below default function to get the "Freelancer" as default:

def _create_default_freelancer(self):
return self.env['it.recruitment.freelancer.category'].search([('name', '=', 'Freelancer')]).ids

category_ids = fields.Many2many(
'it.recruitment.freelancer.category', 'freelancer_category_rel',
'freelancer_id', 'category_id', 
string='Matching Positions',
ondelete='cascade',
default=_create_default_freelancer)

Regards

Avatar
Discard
Related Posts Replies Views Activity
1
May 22
3880
2
Oct 21
5046
1
Aug 19
3804
1
Apr 17
6145
2
Apr 23
29548