我有一个模块,不会继承另一个模块,它将用于体育俱乐部
玩家和培训师将拥有使用该系统的访问权限和我的问题如下:
1-哪个更好,从头开始创建新模型或从合作伙伴,员工,联系人或用户继承
2-如果我创建新模型或继承自非用户的另一个模型,默认情况下如何让任何玩家成为用户
答案 0 :(得分:3)
无论如何,您可能必须为您的用户创建合作伙伴。我的想法是你可能想让你的球员成为合作伙伴。您可以覆盖视图并删除非面向玩家的元素,或者在is_player
标志为真时隐藏它们。 (您可能想要添加新的is_player
布尔值)。您可以使用is_player
布尔值来定义何时显示播放器视图或通用联系人视图。
我个人会使用合作伙伴和用户,因为Odoo的安全性和结构已经围绕这些模型构建。
如果您的播放器继承了合作伙伴,您可以覆盖create()方法,并在其中创建用户后创建用户。
@api.model
@api.returns('self', lambda rec: rec.id)
def create(self, vals):
vals['notify_email'] = 'always'
rec = super(Partner, self).create(vals)
v = {
'active': True,
'login': rec.email,
'company_id': 1,
'partner_id': rec.id,
'create_uid': 1,
'write_uid': 1,
'display_groups_suggestions': False,
'share': False
}
user_id = self.env['res.users'].sudo().create(v)
return rec
上面的示例创建了一个具有一堆值的用户,您可能希望将其更改为更适合您的需求。创建用户后,您需要重置密码。