Skip to Content
Odoo Menu
  • Zaloguj się
  • Wypróbuj za darmo
  • Aplikacje
    Finanse
    • Księgowość
    • Fakturowanie
    • Wydatki
    • Arkusz kalkulacyjny (BI)
    • Dokumenty
    • Podpisy
    Sprzedaż
    • CRM
    • Sprzedaż
    • PoS Sklep
    • PoS Restauracja
    • Subskrypcje
    • Wypożyczalnia
    Strony Internetowe
    • Kreator Stron Internetowych
    • eCommerce
    • Blog
    • Forum
    • Czat na Żywo
    • eLearning
    Łańcuch dostaw
    • Magazyn
    • Produkcja
    • PLM
    • Zakupy
    • Konserwacja
    • Jakość
    Zasoby Ludzkie
    • Pracownicy
    • Rekrutacja
    • Urlopy
    • Ocena pracy
    • Polecenia Pracownicze
    • Flota
    Marketing
    • Marketing Społecznościowy
    • E-mail Marketing
    • SMS Marketing
    • Wydarzenia
    • Automatyzacja Marketingu
    • Ankiety
    Usługi
    • Projekt
    • Ewidencja czasu pracy
    • Usługi Terenowe
    • Helpdesk
    • Planowanie
    • Spotkania
    Produktywność
    • Dyskusje
    • Zatwierdzenia
    • IoT
    • VoIP
    • Baza wiedzy
    • WhatsApp
    Aplikacje trzecich stron Studio Odoo Odoo Cloud Platform
  • Branże
    Sprzedaż detaliczna
    • Księgarnia
    • Sklep odzieżowy
    • Sklep meblowy
    • Sklep spożywczy
    • Sklep z narzędziami
    • Sklep z zabawkami
    Żywienie i hotelarstwo
    • Bar i Pub
    • Restauracja
    • Fast Food
    • Pensjonat
    • Dystrybutor napojów
    • Hotel
    Agencja nieruchomości
    • Agencja nieruchomości
    • Biuro architektoniczne
    • Budowa
    • Zarządzanie nieruchomościami
    • Ogrodnictwo
    • Stowarzyszenie właścicieli nieruchomości
    Doradztwo
    • Biuro księgowe
    • Partner Odoo
    • Agencja marketingowa
    • Kancelaria prawna
    • Agencja rekrutacyjna
    • Audyt i certyfikacja
    Produkcja
    • Tekstylia
    • Metal
    • Meble
    • Jedzenie
    • Browar
    • Prezenty firmowe
    Zdrowie & Fitness
    • Klub sportowy
    • Salon optyczny
    • Centrum fitness
    • Praktycy Wellness
    • Apteka
    • Salon fryzjerski
    Transakcje
    • Złota rączka
    • Wsparcie Sprzętu IT
    • Systemy energii słonecznej
    • Szewc
    • Firma sprzątająca
    • Usługi HVAC
    Inne
    • Organizacja non-profit
    • Agencja Środowiskowa
    • Wynajem billboardów
    • Fotografia
    • Leasing rowerów
    • Sprzedawca oprogramowania
    Przeglądaj wszystkie branże
  • Community
    Ucz się
    • Samouczki
    • Dokumentacja
    • Certyfikacje
    • Szkolenie
    • Blog
    • Podcast
    Pomóż w nauce innym
    • Program Edukacyjny
    • Scale Up! Gra biznesowa
    • Odwiedź Odoo
    Skorzystaj z oprogramowania
    • Pobierz
    • Porównaj edycje
    • Wydania
    Współpracuj
    • Github
    • Forum
    • Wydarzenia
    • Tłumaczenia
    • Zostań partnerem
    • Usługi dla partnerów
    • Zarejestruj swoją firmę rachunkową
    Skorzystaj z usług
    • Znajdź partnera
    • Znajdź księgowego
    • Spotkaj się z doradcą
    • Usługi wdrożenia
    • Opinie klientów
    • Wsparcie
    • Aktualizacje
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Zaplanuj demo
  • Cennik
  • Pomoc

Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:

  • CRM
  • e-Commerce
  • Księgowość
  • Zapasy
  • PoS
  • Projekt
  • MRP
All apps
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
Wszystkie posty Osoby Odznaki
Tagi (Zobacz wszystko)
odoo accounting v14 pos v15
O tym forum
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
Wszystkie posty Osoby Odznaki
Tagi (Zobacz wszystko)
odoo accounting v14 pos v15
O tym forum
Pomoc

Design a field value verification (not odoo.api.constrains validation)

Zaprenumeruj

Otrzymaj powiadomienie o aktywności w tym poście

To pytanie dostało ostrzeżenie
fieldsmodels
3 Odpowiedzi
12786 Widoki
Awatar
notteccon

Odoo 12 CE

​​​Class Dia​​gram: 

       ,-------------------.    
| question_request |
|-------------------|
| +Char Name |
| +Char LastName |
| +Integer Age |
| +Text Description |
|-------------------|
`-------------------'

Code

    from odoo import models, fields, api

class Request(models.Model):
_name = 'test.request'
_description = "Request"

name = fields.Char(string="Name", required=True)
last_name = fields.Char(string="Last Name", required=True)
age = fields.Integer(string="Age", required=True)
description = fields.Text()

Goal:

Feature for field's value manual validations by users.

Ex: Customer send a request with fiel's values as follow:​

    Name:     "Peterrrrrrrrrr"
LastName: "Smith"
Age:      150

It's not a feature about value validation ( odoo.api.constrains(*args) ), but about manual values verification by an user ("Peterrrrrr" is a valid value for the 'name' field, but an user need to confirm or verify that).

The first idea was to use an extra field for verification and another extra field for the comment

    Name:     State=Invalid, Comment="Typo error"
LastName: State=Valid
Age: State:Invalid, Comment="Confirm real age"

The first idea was to use an extra field for validation and another extra field for the comment

    from odoo import models, fields, api

class Request(models.Model):
_name = 'test.request'
_description = "Request"

name = fields.Char(string="Name", required=True)
last_name = fields.Char(string="Last Name", required=True)
age = fields.Integer(string="Age", required=True)
description = fields.Text()

# fields for validation
name_valid = fields.Selection([
('valid', 'Valid'),
('invalid', 'Invalid'),
('unvalidated', 'Unvalidated')
], default="unvalidated")
name_valid_comment = fields.Text()

​

But this is not a good aproach because the need of implmenting the 'field_value_validation' for each field and each model wich need the validation feature
So i thing to store the 'field_value_validation' in the 'FieldsValidation' related model as follows:

    from odoo import models, fields, api

class Request(models.Model):
_name = 'test.request'
_description = "Request"

name = fields.Char(string="Name", required=True)
last_name = fields.Char(string="Last Name", required=True)
age = fields.Integer(string="Age", required=True)
description = fields.Text()
fueld_validation_ids = ???

class FieldsValidation(models.Model):
_name = 'test.fields_validation'
_description = "Validation"

class_name = fields.Char(strng="Class")
record_id = ???
field_name = fields.Char(string="Field")
status = fields .Selection([
('valid', 'Valid'),
('invalid', 'Invalid'),
('unvalidated', 'Unvalidated')
], default="unvalidated")

​

Just right here i got stuck, so i thought to ask to the community.
Thanks in advance

0
Awatar
Odrzuć
Awatar
notteccon
Autor Najlepsza odpowiedź

Hi Hilar AK, thanks for your answer.

I'm not asking about validation ( odoo.api.constrains(*args) ), but about manual values verification by an user ("Peterrrr" is a valid value for the name field, but an user need to confirm or verify that). Maybe i don't explain it well. I'll update the question to clarify.

0
Awatar
Odrzuć
Awatar
Cayprol
Najlepsza odpowiedź

I think Hilar's answer is the correct way to implement field validation.  

On top of that, in the newapi (v9 or newer), when raising exceptions, 'Warning' is deprecated, UserError and ValidationError are preferred in odoo api.  

UserError is more of a front-end way to avoid user input undesired value.   
ValidationError is designed for function or access right that type of thing.  

Also, I personally would make the constraint method private as well.

0
Awatar
Odrzuć
Awatar
Hilar Andikkadavath
Najlepsza odpowiedź

Just add some constraints for the fields. You can use SQL Constraints or write in python also using the decorator 

@api.constraints. 

eg:


@api.constrains('field_name')
def field_name_constratints(self):
if condition:
raise Warning(message)


0
Awatar
Odrzuć
Podoba Ci się ta dyskusja? Dołącz do niej!

Stwórz konto dzisiaj, aby cieszyć się ekskluzywnymi funkcjami i wchodzić w interakcje z naszą wspaniałą społecznością!

Zarejestruj się
Powiązane posty Odpowiedzi Widoki Czynność
View a field from one model in another model Rozwiązane
fields models
Awatar
Awatar
1
lis 25
6138
How to find the field type? Rozwiązane
fields models
Awatar
Awatar
1
cze 25
5952
Add base field (default_code) to a model (stock.quant)
fields models
Awatar
0
lis 16
5317
Calculate fields from two different models
fields models
Awatar
Awatar
1
sie 15
5588
How to transfer typed value to a field in a many2one field. Rozwiązane
fields models v18
Awatar
Awatar
1
paź 25
1897
Społeczność
  • Samouczki
  • Dokumentacja
  • Forum
Open Source
  • Pobierz
  • Github
  • Runbot
  • Tłumaczenia
Usługi
  • Hosting Odoo.sh
  • Wsparcie
  • Aktualizacja
  • Indywidualne rozwiązania
  • Edukacja
  • Znajdź księgowego
  • Znajdź partnera
  • Zostań partnerem
O nas
  • Nasza firma
  • Zasoby marki
  • Skontaktuj się z nami
  • Oferty pracy
  • Wydarzenia
  • Podcast
  • Blog
  • Klienci
  • Informacje prawne • Prywatność
  • Bezpieczeństwo Odoo
الْعَرَبيّة Català 简体中文 繁體中文 (台灣) Čeština Dansk Nederlands English Suomi Français Deutsch हिंदी Bahasa Indonesia Italiano 日本語 한국어 (KR) Lietuvių kalba Język polski Português (BR) română русский язык Slovenský jazyk slovenščina Español (América Latina) Español ภาษาไทย Türkçe українська Tiếng Việt

Odoo to pakiet aplikacji biznesowych typu open source, które zaspokoją wszystkie potrzeby Twojej firmy: CRM, eCommerce, księgowość, inwentaryzacja, punkt sprzedaży, zarządzanie projektami itp.

Unikalną wartością Odoo jest to, że jest jednocześnie bardzo łatwe w użyciu i w pełni zintegrowane.

Website made with

Odoo Experience on YouTube

1. Use the live chat to ask your questions.
2. The operator answers within a few minutes.

Live support on Youtube
Watch now