Odoo 14:如何在注册中添加其他字段,如地址等
问题描述
我想在Odoo注册表单/视图(如Address)中添加一些额外的字段,还想知道它保存注册数据(表)的位置,以便我可以引用/跟踪与用户相关的活动。为了实现这一点,请指导我必须采取的步骤。 问候
解决方案
您需要继承auth_signup.fields模板才能将该字段添加到注册页。以下代码将street
添加到注册字段。
<odoo>
<template id="signup_fields" inherit_id="auth_signup.fields" name="Auth Signup street form field">
<xpath expr="//div[last()]" position="after">
<div class="form-group field-login">
<label for="street">Street</label>
<input type="text" name="street" id="street" class="form-control form-control-sm"/>
</div>
</xpath>
</template>
</odoo>
单击submit
按钮时,将调用web_auth_signup控制器方法。控制器要做的第一件事是调用do_signup准备值,并调用res.users
的signup方法将值写入数据库。
若要保存street
字段值,可以重写_signup_with_values方法:
from odoo.addons.auth_signup.controllers.main import AuthSignupHome
class AuthSignupStreet(AuthSignupHome):
def _signup_with_values(self, token, values):
context = self.get_auth_signup_qcontext()
values.update({'street': context.get('street')})
super(AuthSignupStreet, self)._signup_with_values(token, values)
相关文章