Skip to Content
Menu
This question has been flagged
3 Replies
2671 Views

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'


Avatar
Discard
Author

I updated my code

Author

Any idea ?

Author Best Answer

sadly she doesn't explain how to change the action

Avatar
Discard

By default Odoo does not have any option to change the action.

Best Answer

This might help 

https://www.youtube.com/watch?v=KoWVm2DcQJE

Avatar
Discard