Skip to Content
Menu
This question has been flagged
2 Replies
4935 Views
class regis(models.Model):    _name = 'empdetails.regis'    reg_name = fields.Char(string="Name", required=True)    reg_email = fields.Char(string="Email", required=True)    password = fields.Char(string="Password", required=True)    confirm_password = fields.Char(string="Confirm_Password", required=True)    otpp=fields.Integer('otp' )    @api.onchange('reg_email','password')    def otp_send_email(self):
Avatar
Discard
Best Answer

Hi,
To call a method in a model from the template , you can do like this,

request.env['model_name'].search([('test', '=', 5)], limit=1).method_name(parameter)"

See a sample,

<template id="loader" name="Livechat : Javascript appending the livechat button">   
     <t t-translation="off">
     <t t-if="not info">
         <t t-set="info" t-value="request.env['res.partner'].search([('id', '=', 1)]).get_livechat_info(channel)"/>
     </t>

While posting the question try to keep the alignment of the code

Thanks

Avatar
Discard
Author Best Answer

Niyas : Thank you for your responce 

when i placed this in my template  it showing the following error before loading form

Error to render compiling AST

TypeError: otp_send_email() takes exactly 1 argument (2 given)

Template: 1444

Path: /templates/t/t/div/div/form/t

Node: <t t-set="info" t-value="request.env['empdetails.regis'].otp_send_email(self)"/>

Avatar
Discard

Remove that self and try

Author

no niyas even after it still showing error

Error to render compiling AST

ValueError: Expected singleton: empdetails.regis()

Template: 1444

Path: /templates/t/t/t

Node: <t t-set="info" t-value="request.env['empdetails.regis'].otp_send_email()"/>

just see the updated answer, have to search and get correct record

Author

Good morning Niyas i tried with the sintax but unable to call the metod

i am mentioning the code below

==============template.xml===============

<template id="regis">

<t t-call="website.layout">

<div id="wrap" class="oe_structure oe_empty">

<div class="container mt16 mb16">

<button class="btn btn-primary btn-lg o_website_form_send" onclick="document.location.href = '/christjobs/login'" >Login here</button>

<form action="/website_form/" method="post" class="s_website_form form-horizontal container-fluid mt32" enctype="multipart/form-data" data-model_name="empdetails.regis" data-success_page="/christjobs/thankyou">

<!--<t t-set="info" t-value="request.env['empdetails.regis'].otp_send_email(self)"/>-->

<div class="oe_structure" id="html_fields">

<div class="hff hff_textbox form-group" data-form-type="textbox" data-field-id="0">

<input type="text" name="reg_name" class="form-control" placeholder="NAME OF STUDENT AS PER 10 RECORD "/>

</div>

<div class="hff hff_textbox form-group" data-form-type="textbox" data-field-id="0">

<input type="email" name="reg_email" class="form-control" placeholder="E-MAIL"/>

</div>

<div class="hff hff_textbox form-group" data-form-type="textbox" data-field-id="0">

<input type="password" name="password" class="form-control" placeholder="PASSWORD"/>

</div>

<div class="hff hff_textbox form-group" data-form-type="textbox" data-field-id="0">

<input type="password" name="confirm_password" class="form-control" placeholder="CONFIRM PASSWORD"/>

</div>

</div>

<button class="btn btn-primary btn-lg o_website_form_send">Register</button>

<button class="btn btn-primary btn-lg o_website_form_send" onclick="document.location.href ='/christjobs/'" >Cancel</button>

</form>

</div>

</div>

</t>

</template>

================model.py===============================

class regis(models.Model):

_name = 'empdetails.regis'

reg_name = fields.Char(string="Name", required=True)

reg_email = fields.Char(string="Email", required=True)

password = fields.Char(string="Password", required=True)

confirm_password = fields.Char(string="Confirm_Password", required=True)

# otpp=fields.Integer('otp' )

@api.multi

def otp_send_email(self):

print 'method calling done'

from a template, i am able to store values into a database but at the same time I want to call a method otp_send_email

thanks in advance