Hello, i would like to have a custom form in my website so any customer could fill it and it would add in my database.
But i don't know where i can find information or example to understand how to do it
thx for ur help
Ok so i found on net an example but i have an error
this my form
xml version="1.0" encoding="UTF-8" ?>
id="menu_patient_form12" model="website.menu">
name="name">create patient
name="url">/patient_webform
name="parent_id" ref="website.main_menu"/>
name="sequence">55
id="create_patient" name="Create Patient">
t-call="website.layout">
id="wrap">
class="oe_structure">
class="container">
role="form" action="/create/webpatient" method="post">
type="hidden" name="csrf_token" t-att-value="request.csrf_token()"/>
class="form-group">
type="text" name="patient_name" t-att-value="patient_name" id="patient_name"
class="form-control" placeholder="joe li" required ="required"/>
class="clearfix oe_login_buttons">
my model :
from odoo import models, fields
class HaemertestPatient (models.Model):
_name= "haemer.patient"
_description = "Our Patient"
patient_name = fields.Char(string='Name', required=True, tracking=True)
my controller :
from odoo import http
from odoo.http import request
class Hospital(http.Controller):
@http.route('/patient_webform/', type="http",auth="public",website="true")
def patient_webform(self,**kw):
return http.request.render('theme_haemertest.create_patient',{})
@http.route('/create/webpatient/', type="http",auth="public",website="true")
def create_webpatient(self,**kw):
request.env('haemer.patient').sudo().create(kw)
return request.render("theme_haemertest.create_patient", {})
and this is the output error :
Traceback (most recent call last): File "C:\odoo\odoo\odoo\addons\base\models\ir_http.py", line 237, in _dispatch result = request.dispatch() File "C:\odoo\odoo\odoo\http.py", line 810, in dispatch r = self._call_function(**self.params) File "C:\odoo\odoo\odoo\http.py", line 359, in _call_function return checked_call(self.db, *args, **kwargs) File "C:\odoo\odoo\odoo\service\model.py", line 94, in wrapper return f(dbname, *args, **kwargs) File "C:\odoo\odoo\odoo\http.py", line 348, in checked_call result = self.endpoint(*a, **kw) File "C:\odoo\odoo\odoo\http.py", line 916, in __call__ return self.method(*args, **kw) File "C:\odoo\odoo\odoo\http.py", line 535, in response_wrap response = f(*args, **kw) File "c:\odoo\custom_addons\theme_haemertest\controllers\hospital.py", line 13, in create_webpatient request.env('haemer.patient').sudo().create(kw) File "C:\odoo\odoo\odoo\api.py", line 574, in __call__ return Environment(cr, uid, context, su) File "C:\odoo\odoo\odoo\api.py", line 508, in __new__ transaction = cr.transaction Exception The above exception was the direct cause of the following exception: Traceback (most recent call last): File "C:\odoo\odoo\odoo\addons\base\models\ir_http.py", line 237, in _dispatch result = request.dispatch() File "C:\odoo\odoo\odoo\http.py", line 810, in dispatch r = self._call_function(**self.params) File "C:\odoo\odoo\odoo\http.py", line 359, in _call_function return checked_call(self.db, *args, **kwargs) File "C:\odoo\odoo\odoo\service\model.py", line 94, in wrapper return f(dbname, *args, **kwargs) File "C:\odoo\odoo\odoo\http.py", line 348, in checked_call result = self.endpoint(*a, **kw) File "C:\odoo\odoo\odoo\http.py", line 916, in __call__ return self.method(*args, **kw) File "C:\odoo\odoo\odoo\http.py", line 535, in response_wrap response = f(*args, **kw) File "c:\odoo\custom_addons\theme_haemertest\controllers\hospital.py", line 13, in create_webpatient request.env('haemer.patient').sudo().create(kw) File "C:\odoo\odoo\odoo\api.py", line 574, in __call__ return Environment(cr, uid, context, su) File "C:\odoo\odoo\odoo\api.py", line 508, in __new__ transaction = cr.transaction AttributeError: 'str' object has no attribute 'transaction'
I updated my code
Any idea ?