跳至内容
菜单
此问题已终结

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. 

形象
丢弃

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,

最佳答案
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)


形象
丢弃
最佳答案

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

形象
丢弃
相关帖文 回复 查看 活动
1
5月 22
3905
2
10月 21
5067
1
8月 19
3837
1
4月 17
6156
2
4月 23
29575