Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
3 Trả lời
3769 Lượt xem

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'


Ảnh đại diện
Huỷ bỏ
Tác giả

I updated my code

Tác giả

Any idea ?

Tác giả Câu trả lời hay nhất

sadly she doesn't explain how to change the action

Ảnh đại diện
Huỷ bỏ

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

Câu trả lời hay nhất

This might help 

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

Ảnh đại diện
Huỷ bỏ