Se rendre au contenu
Menu
Cette question a été signalée
1 Répondre
3606 Vues

Hello, 

I want to create an object from the website, i can catch a simple field but i dont undetstand how to do with radio. When i tried i only got "on" value

So here i want to have a field with 3 radio for the remediation_type (soil,choice2,choice3-

here is my controller 

from odoo import http
from odoo.http import request


class Estimate(http.Controller):

@http.route('/estimate_webform/', type="http",auth="public",website="true")
def patient_webform(self,**kw):
return http.request.render('theme_haemertest.create_estimate',{})

@http.route('/create/estimate/', type="http",auth="public",website="true")
def create_estimate(self, **kw):
estimate = request.env['haemer.estimate'].sudo().create({
'owner': kw.get('nowner'),
'name': kw.get('name'),
'address': kw.get('address'),
'latitude': kw.get('latitude'),
'longitude': kw.get('longitude'),
'past_activity': kw.get('past_activity'),
'future_activity': kw.get('future_activity'),
'remediation_type': kw.get('remediation_type'),
'volume': kw.get('volume'),
'density': kw.get('density'),
'humidity': kw.get('humidity'),
'porosity': kw.get('porosity'),
})
vals = {
'estimate': estimate,
}
return request.render("theme_haemertest.create_estimate", vals)

my model : 

from odoo import models, fields

class HaemertestEstimate (models.Model):
_name= "haemer.estimate"
_description = "Estimate's customer"

owner = fields.Char(string='Owner')
name = fields.Char(string='Name')
address = fields.Char(string='Address')
latitude = fields.Integer(string='Latitude')
longitude = fields.Integer(string='Longitude')
past_activity = fields.Char(string='Past Activity')
future_activity = fields.Char(string='Future Activity')
remediation_type = fields.Selection([
('soil', 'Soil'),
('n2', 'Choice2'),
('n3', 'Choice3'),
], required=True, default='soil', tracking=True)
volume = fields.Integer(string='Volume')
density = fields.Integer(string='Density')
humidity = fields.Float(string='Humidity')
porosity = fields.Float(string='Porosity')



xml version="1.0" encoding="UTF-8" ?>

id="menu_estimate_form" model="website.menu">
name="name">create estimate
name="url">/estimate_webform
name="parent_id" ref="website.main_menu"/>
name="sequence">75

id="create_estimate" name="Create Estimate">
t-call="website.layout">
id="wrap">
class="oe_structure">
class="container">
role="form" action="/create/estimate" method="post">
type="hidden" name="csrf_token" t-att-value="request.csrf_token()"/>
class="form-group">

type="text" name="name" t-att-value="owner" id="owner"
class="form-control" placeholder="owner" required ="required"/>

class="form-group">

type="text" name="name" t-att-value="name" id="name"
class="form-control" placeholder="name" required ="required"/>

class="form-group">

type="text" name="address" t-att-value="address" id="address"
class="form-control" placeholder="address" required ="required"/>

class="form-group">

type="number" step ="any" name="latitude" t-att-value="latitude" id="latitude"
class="form-control" placeholder="0" required ="required"/>

class="form-group">

type="number" step ="any" name="longitude" t-att-value="longitude" id="longitude"
class="form-control" placeholder="0" required ="required"/>

class="form-group">

type="text" name="past_activity" t-att-value="past_activity" id="past_activity"
class="form-control" placeholder="past activity" required ="required"/>

class="form-group">

type="text" name="future_activity" t-att-value="future_activity" id="future_activity"
class="form-control" placeholder="future activity" required ="required"/>

class="form-group">






class="form-group">

type="number" step ="any" name="volume" t-att-value="volume" id="volume"
class="form-control" placeholder="0" required ="required"/>

class="form-group">

type="number" step ="any" name="density" t-att-value="density" id="density"
class="form-control" placeholder="0" required ="required"/>

class="form-group">

type="number" step ="any" name="humidity" t-att-value="humidity" id="humidity"
class="form-control" placeholder="0" required ="required"
min="0" max="1"/>

class="form-group">

type="number" step ="any" name="porosity" t-att-value="porosity" id="porosity"
class="form-control" placeholder="0" required ="required"
min="0" max="1"/>

class="clearfix oe_login_buttons">









 

Avatar
Ignorer
Auteur

any one ?

Meilleure réponse

Hi,

Add the selection field as radio button as follows.

<div>


    <input type="radio" id="Choice1" name="remediation_type" value="soil" />


    <label for="Choice1">Soil</label>


    <input type="radio" id="Choice2" name="remediation_type" value="n2" />


    <label for="Choice2">Choice2</label>


    <input type="radio" id="Choice3" name="remediation_type" value="n3" />


    <label for="Choice3">Choice3</label>


</div>

Inside the controller, can access the field as follows:-

kw.get('remediation_type')

Regards

Avatar
Ignorer
Publications associées Réponses Vues Activité
2
nov. 22
3639
1
mai 25
3037
1
mai 24
2554
1
avr. 24
2191
2
mars 24
3419