Skip to Content

Πεδίο Επιλογής στο Odoo: Ο Απόλυτος Οδηγός

Όλα όσα χρειάζεστε να ξέρετε για το πεδίο Επιλογής στο μοντέλο δεδομένων Odoo, από τη βασική χρήση μέχρι την τεχνική προσαρμογή
6 Μαρτίου 2026 από
Πεδίο Επιλογής στο Odoo: Ο Απόλυτος Οδηγός
Dasolo
| No comments yet

Εισαγωγή


Κάθε φορά που ένας χρήστης επιλέγει μια προτεραιότητα επαφής, επιλέγει μια μέθοδο πληρωμής ή σηματοδοτεί ένα προϊόν ως ενεργό ή αρχειοθετημένο στο Odoo, είναι πολύ πιθανό να αλληλεπιδρά με ένα πεδίο Επιλογής. Είναι ένας από τους πιο πρακτικούς τύπους πεδίων στο πλαίσιο του Odoo και ένας από τους πιο σημαντικούς για να κατανοήσετε αν θέλετε να δημιουργήσετε καθαρά και αξιόπιστα μοντέλα δεδομένων.


Σε αντίθεση με ένα πεδίο ελεύθερου κειμένου όπου οι χρήστες μπορούν να πληκτρολογήσουν οτιδήποτε, το πεδίο Επιλογής περιορίζει την είσοδο σε μια προκαθορισμένη λίστα επιλογών. Αυτή η περιοριστική προσέγγιση είναι ολόκληρος ο σκοπός. Διατηρεί τα δεδομένα σας συνεπή, καθιστά την φιλτράρισμα και την αναφορά πιο ακριβή και αποτρέπει τα είδη τυπογραφικών λαθών και παραλλαγών που σιωπηλά σπάνε τις συγκεντρώσεις και τους πίνακες ελέγχου με την πάροδο του χρόνου.


Αυτός ο οδηγός καλύπτει τα πάντα, από το τι αποθηκεύει το πεδίο και πώς εμφανίζεται στη διεπαφή, μέχρι τη δημιουργία και την προσαρμογή του μέσω του Odoo Studio, των Python modules ή του XML-RPC API. Θα βρείτε επίσης πρακτικά παραδείγματα από πραγματικές ροές εργασίας και μια λίστα με κοινά λάθη που πρέπει να αποφύγετε.

Τι είναι το πεδίο Επιλογής στο Odoo


Στο Odoo ORM, το πεδίο Επιλογής αποθηκεύει μια τιμή κειμένου που επιλέγεται από μια σταθερή λίστα επιλογών. Κάθε επιλογή ορίζεται ως ζεύγος κλειδιού-τιμής: το κλειδί είναι αυτό που αποθηκεύεται στη βάση δεδομένων και η ετικέτα είναι αυτή που βλέπει ο χρήστης στη διεπαφή.


Για παράδειγμα, ένα πεδίο προτεραιότητας μπορεί να οριστεί με τις εξής επιλογές:

priority = fields.Selection([
    ('0', 'Κανονική'),
    ('1', 'Χαμηλή'),
    ('2', 'Υψηλή'),
    ('3', 'Πολύ Υψηλή'),
], string='Προτεραιότητα', default='0')

Σε αυτό το παράδειγμα, '0', '1', '2', και '3' είναι τα κλειδιά που αποθηκεύονται στη βάση δεδομένων. Οι ετικέτες Κανονική, Χαμηλή, Υψηλή, και Πολύ Υψηλή είναι αυτές που βλέπουν οι χρήστες στην οθόνη. Αυτή η διάκριση έχει μεγάλη σημασία όταν πρόκειται να αλλάξουμε ετικέτες αργότερα χωρίς να σπάσουμε υπάρχουσες εγγραφές.


Στην διεπαφή, ένα πεδίο Επιλογής εμφανίζεται ως αναπτυσσόμενη λίστα σε φόρμες. Σε λίστες, εμφανίζει την ανθρώπινα αναγνώσιμη ετικέτα. Όταν χρησιμοποιείται το widget badge, κάθε επιλογή αποδίδεται ως χρωματιστή ετικέτα, γεγονός που καθιστά την τιμή άμεσα ορατή σε πυκνές λίστες.


Στο Odoo Studio, αυτός ο τύπος πεδίου ονομάζεται Selection. Όταν δημιουργείται μέσω του Studio, αποκτά ένα πρόθεμα x_studio_. Όταν δημιουργείται μέσω κώδικα ή του XML-RPC API, επιλέγετε το τεχνικό όνομα.

Πώς λειτουργεί το πεδίο


Στο μοντέλο δεδομένων του Odoo, τα πεδία Επιλογής αποθηκεύονται στο PostgreSQL ως στήλη VARCHAR. Η βάση δεδομένων αποθηκεύει μόνο το κλειδί, ποτέ την ετικέτα. Αυτό είναι σημαντικό να το έχετε υπόψη σας όταν γράφετε φίλτρα τομέα ή ενέργειες διακομιστή, καθώς πρέπει να χρησιμοποιείτε το κλειδί, όχι την ανθρώπινα αναγνώσιμη τιμή.


Για παράδειγμα, για να αναζητήσετε όλες τις ευκαιρίες με υψηλή προτεραιότητα, το domain σας θα ήταν [('priority', '=', '2')], όχι [('priority', '=', 'Υψηλή')].

Χαρακτηριστικά Κλειδιού Πεδίου

Ακολουθούν οι πιο σημαντικές ιδιότητες ενός πεδίου Επιλογής στο πλαίσιο του Odoo:

  • selection: Η λίστα των (κλειδί, ετικέτα) ζευγών που καθορίζουν τις διαθέσιμες επιλογές. Αυτό μπορεί επίσης να είναι ένα όνομα μεθόδου (string) που επιστρέφει μια λίστα δυναμικά.
  • default: Το κλειδί της επιλογής που θα χρησιμοποιηθεί όταν δεν έχει οριστεί ακόμη καμία τιμή. Αν παραλειφθεί, το πεδίο ξεκινά κενό.
  • required: Υποχρεώνει τον χρήστη να επιλέξει μια επιλογή πριν αποθηκεύσει. Συνδυασμένο με μια προεπιλεγμένη τιμή, αυτό είναι ένα κοινό μοτίβο για πεδία κατάστασης.
  • selection_add: Χρησιμοποιείται στην κληρονομικότητα του module για να προσθέσει νέες επιλογές σε ένα υπάρχον πεδίο Επιλογής χωρίς να χρειάζεται να ξαναοριστεί ολόκληρη η λίστα. Αυτή είναι η σωστή προσέγγιση όταν επεκτείνετε ένα εγγενές πεδίο.
  • ondelete: Λειτουργεί παράλληλα με το selection_add για να καθορίσει τι συμβαίνει με τις εγγραφές που έχουν μια διαγραμμένη επιλογή όταν απεγκαθίσταται το module που την πρόσθεσε.

Στατικές vs Δυναμικές Λίστες Επιλογών

Από προεπιλογή, η λίστα επιλογών ορίζεται στατικά στην δήλωση του πεδίου. Αλλά μπορείτε επίσης να περάσετε ένα όνομα μεθόδου ως συμβολοσειρά στην παράμετρο selection. Ο Odoo θα καλέσει αυτή τη μέθοδο κατά την εκτέλεση για να δημιουργήσει τη λίστα, κάτι που σας επιτρέπει να εμφανίσετε διαφορετικές επιλογές ανάλογα με τον τρέχοντα χρήστη, την τρέχουσα εταιρεία ή οποιοδήποτε άλλο πλαίσιο.


contract_type = fields.Selection(
    selection='_get_contract_types',
    string='Τύπος Σύμβασης'
)

def _get_contract_types(self):
    if self.env.user.has_group('hr.group_hr_manager'):
        return [('permanent', 'Μόνιμος'), ('fixed', 'Ορισμένου Χρόνου'), ('interim', 'Προσωρινός')]
    return [('permanent', 'Μόνιμος'), ('fixed', 'Ορισμένου Χρόνου')]

Πώς Εμφανίζεται στις Προβολές

Σε μια φόρμα, ένα πεδίο Επιλογής εμφανίζεται ως τυπικό αναπτυσσόμενο μενού. Μπορείτε επίσης να χρησιμοποιήσετε την ιδιότητα widget="badge" για να το εμφανίσετε ως χρωματιστή ετικέτα, η οποία λειτουργεί καλά σε λίστες και προβολές kanban για πεδία κατάστασης. Η ιδιότητα widget="radio" εμφανίζει τις επιλογές ως inline ραδιοκουμπιά, που ταιριάζει σε πεδία με μικρό αριθμό επιλογών όπου θέλετε όλες οι επιλογές να είναι ορατές ταυτόχρονα.


Αλληλεπίδραση με το Odoo ORM

Η ανάγνωση και η εγγραφή πεδίων Επιλογής στο Odoo ORM λειτουργεί απλά. Αναθέτετε το κλειδί απευθείας, και το πλαίσιο χειρίζεται αυτόματα την απεικόνιση. Όταν διαβάζετε μια εγγραφή μέσω του XML-RPC API με το fields_get, η ιδιότητα selection του πεδίου περιλαμβάνει τη πλήρη λίστα των [key, label] ζευγών, την οποία μπορείτε να χρησιμοποιήσετε για να δημιουργήσετε τη δική σας λογική απεικόνισης σε εξωτερικά εργαλεία.


Επιχειρηματικές περιπτώσεις χρήσης


Το πεδίο Επιλογής εμφανίζεται σχεδόν σε κάθε module σε μια τυπική υλοποίηση του Odoo. Ακολουθούν πέντε συγκεκριμένα παραδείγματα από κοινές επιχειρηματικές ροές εργασίας.


CRM: Προτεραιότητα Επικοινωνίας και Τύπος Σταδίου Pipeline

Το πεδίο προτεραιότητας στις επαφές CRM είναι ένα εγγενές πεδίο Επιλογής με τέσσερα επίπεδα: Κανονικό, Χαμηλό, Υψηλό και Πολύ Υψηλό. Οι ομάδες πωλήσεων το χρησιμοποιούν για να εστιάσουν την προσοχή τους στις πιο υποσχόμενες ευκαιρίες. Τροφοδοτεί άμεσα την κωδικοποίηση χρωμάτων της προβολής Kanban και μπορεί να χρησιμοποιηθεί σε αυτοματοποιημένες ενέργειες για να ενεργοποιήσει καθήκοντα παρακολούθησης όταν μια επαφή αναβαθμίζεται. Η σωστή κατανομή προτεραιοτήτων είναι μία από τις πρώτες βελτιώσεις ποιότητας δεδομένων που κάνουν οι περισσότερες ομάδες CRM μετά την έναρξη λειτουργίας.


Πωλήσεις: Όροι Πληρωμής και Πολιτική Τιμολόγησης

Το πεδίο invoice_policy στα προϊόντα είναι ένα πεδίο Επιλογής που ελέγχει εάν η τιμολόγηση βασίζεται σε παραγγελθέντες ποσότητες ή παραδιδόμενες ποσότητες. Αυτό το μοναδικό πεδίο καθορίζει ολόκληρη τη ροή τιμολόγησης για ένα προϊόν. Παρομοίως, η μέθοδος τιμολόγησης στα συμβόλαια συνδρομής χρησιμοποιεί ένα πεδίο Επιλογής για να διακρίνει μεταξύ προπληρωμένων και μεταγενέστερων κύκλων τιμολόγησης. Και τα δύο είναι καλά παραδείγματα πεδίων Επιλογής που έχουν σημαντικές συνέπειες στις χρηματοοικονομικές ροές εργασίας.


Αποθέματα: Καταστάσεις Ποιότητας Προϊόντων και Παρτίδων

Στις ροές εργασίας παραγωγής και ποιοτικού ελέγχου, τα πεδία Επιλογής χρησιμοποιούνται για την παρακολούθηση της κατάστασης παρτίδων, σειριακών αριθμών και παραγγελιών επισκευής. Το πεδίο κατάστασης παραγγελίας επισκευής, για παράδειγμα, κινείται μέσα από τιμές όπως προσχέδιο, επιβεβαιωμένο, υπό επισκευή, έτοιμο και ολοκληρωμένο. Κάθε μετάβαση μπορεί να ενεργοποιήσει αυτοματοποιημένα email, μεταφορές αποθεμάτων ή λογιστικές εγγραφές. Το πεδίο Επιλογής λειτουργεί ως το σημείο ελέγχου γύρω από το οποίο έχει χτιστεί ολόκληρη η ροή εργασίας.


Λογιστικά: Μέθοδος Πληρωμής και Τύπος Ημερολογίου

Το πεδίο τύπου ημερολογίου στην Οικονομική Διαχείριση Odoo είναι ένα πεδίο Επιλογής που διακρίνει μεταξύ ημερολογίων πωλήσεων, ημερολογίων αγορών, ημερολογίων μετρητών και τραπεζικών ημερολογίων. Η Odoo χρησιμοποιεί αυτή την τιμή για να εφαρμόσει τη σωστή λογική καταχώρησης, να προσδιορίσει ποιους λογαριασμούς έχει στη διάθεσή της και να περιορίσει ορισμένες λειτουργίες στους σωστούς τύπους ημερολογίων. Αυτό είναι ένα καλό παράδειγμα πεδίου Επιλογής που ελέγχει επιχειρηματικούς κανόνες αντί να απλώς επισημαίνει μια εγγραφή.


Ανθρώπινοι Πόροι: Τύπος Απασχόλησης και Κατάσταση Σύμβασης

Οι ομάδες HR χρησιμοποιούν πεδία Επιλογής για να παρακολουθούν τους τύπους απασχόλησης, τις καταστάσεις συμβάσεων και τις καταστάσεις αιτημάτων άδειας. Η κατάσταση της σύμβασης, για παράδειγμα, κινείται από νέα σε ανοιχτή, ληγμένη ή ακυρωμένη. Οι αυτοματισμοί μπορούν να ειδοποιούν τον διευθυντή HR έναν μήνα πριν λήξει μια σύμβαση, να ενεργοποιούν λίστες ελέγχου κατά την ένταξη όταν ξεκινά ένας νέος υπάλληλος και να ενημερώνουν τους κανόνες μισθοδοσίας με βάση τον τύπο απασχόλησης. Το πεδίο Επιλογής κρατά την κατάσταση που οδηγεί όλη αυτή τη λογική.

Δημιουργία ή προσαρμογή του πεδίου Επιλογής


Υπάρχουν τρεις κύριοι τρόποι για να προσθέσετε ένα πεδίο Επιλογής σε ένα μοντέλο Odoo, ανάλογα με τη ρύθμισή σας και αν χρειάζεστε την αλλαγή να είναι ελεγχόμενη έκδοση ή να εφαρμοστεί προγραμματισμένα.


Χρησιμοποιώντας το Odoo Studio (Χωρίς Κώδικα)

Το Odoo Studio είναι το ενσωματωμένο εργαλείο χαμηλού κώδικα για την προσθήκη πεδίων χωρίς να χρειάζεται να γράψετε Python. Για να προσθέσετε ένα πεδίο Επιλογής μέσω του Studio:

  1. Ανοίξτε το Odoo Studio από το κύριο μενού.
  2. Πλοηγηθείτε στη φόρμα όπου θέλετε το πεδίο.
  3. Σύρετε ένα Πεδίο Επιλογής από τη γραμμή εργαλείων στη φόρμα.
  4. Προσθέστε τις επιλογές σας στον πίνακα ιδιοτήτων του πεδίου, εισάγοντας μια ετικέτα για κάθε επιλογή.
  5. Προαιρετικά, ορίστε μια προεπιλεγμένη τιμή και σημειώστε το πεδίο ως υποχρεωτικό.
  6. Αποθηκεύστε και κλείστε το Studio.

Το Studio αποθηκεύει κάθε επιλογή με ένα αυτόματα παραγόμενο κλειδί και την ετικέτα που παρέχετε. Το πεδίο αποκτά ένα x_studio_ πρόθεμα και προστίθεται αυτόματα στην προβολή της φόρμας. Αυτή είναι η ταχύτερη προσέγγιση για την προσθήκη ενός πεδίου Επιλογής κατά τη διάρκεια μιας συνεδρίας επιχειρηματικής ανάλυσης με έναν πελάτη.


Χρησιμοποιώντας Python σε ένα Προσαρμοσμένο Μodule

Για προγραμματιστές που δημιουργούν modules Odoo, τα πεδία Επιλογής ορίζονται σε αρχεία μοντέλου Python. Αυτή είναι η συνιστώμενη προσέγγιση για προσαρμογές που χρειάζονται έλεγχο έκδοσης και ανάπτυξη σε πολλαπλά περιβάλλοντα:

from odoo import fields, models

class SaleOrder(models.Model):
    _inherit = 'sale.order'

    x_delivery_slot = fields.Selection([
        ('morning', 'Πρωί (8πμ - 12μμ)'),
        ('afternoon', 'Απόγευμα (1μμ - 5μμ)'),
        ('evening', 'Βράδυ (6μμ - 8μμ)'),
    ], string='Χρόνος Παράδοσης', default='morning')

Αφού ορίσετε το πεδίο, το προσθέτετε στο σχετικό αρχείο XML προβολής ώστε να εμφανίζεται στη διεπαφή. Το Odoo διαχειρίζεται τη δημιουργία της στήλης της βάσης δεδομένων όταν εγκαθιστάτε ή αναβαθμίζετε το module.


Όταν επεκτείνετε ένα εγγενές πεδίο με νέες επιλογές, χρησιμοποιήστε το selection_add αντί να ξαναορίσετε το πεδίο:

class SaleOrder(models.Model):
    _inherit = 'sale.order'

    state = fields.Selection(
        selection_add=[('custom_approval', 'Εκκρεμεί Έγκριση')],
        ondelete={'custom_approval': 'ορίστε προεπιλογή'}
    )

Χρησιμοποιώντας το XML-RPC API

Εάν διαχειρίζεστε τις προσαρμογές του Odoo προγραμματιστικά, για παράδειγμα ως μέρος μιας διαδικασίας ανάπτυξης ή ενός απομακρυσμένου σημειωματάριου ρυθμίσεων, μπορείτε να δημιουργήσετε πεδία Επιλογής μέσω του XML-RPC API:

field_id = models.execute_kw(
    ODOO_DB, uid, ODOO_API_KEY,
    'ir.model.fields', 'create',
    [{
        'name': 'x_contract_category',
        'field_description': 'Κατηγορία Σύμβασης',
        'model_id': model_id,
        'ttype': 'selection',
        'selection': "[('standard', 'Standard'), ('premium', 'Premium'), ('custom', 'Custom')]",
        'state': 'manual',
    }]
)

Σημειώστε ότι όταν δημιουργείτε ένα πεδίο Επιλογής μέσω του API, η τιμή selection περνά ως συμβολοσειρά αναπαράστασης της λίστας Python. Η τιμή state: manual ενημερώνει το Odoo ότι αυτό το πεδίο δημιουργήθηκε χειροκίνητα, το οποίο είναι η σωστή ρύθμιση για πεδία που δημιουργούνται μέσω του Studio ή του API. Έτσι χειρίζεται η Dasolo τη δημιουργία απομακρυσμένων πεδίων για τους πελάτες ως μέρος αυτοματοποιημένων σεναρίων ρύθμισης.


Καλές πρακτικές


1. Χρησιμοποιήστε κατανοητά και σταθερά κλειδιά

Το κλειδί είναι αυτό που αποθηκεύεται στη βάση δεδομένων και χρησιμοποιείται σε φίλτρα τομέα, αυτοματοποιημένες ενέργειες και λογική πλευράς διακομιστή. Επιλέξτε ένα κλειδί που περιγράφει σαφώς την επιλογή και που δεν θα χρειαστεί να αλλάξετε αργότερα. Οι σύντομες συμβολοσειρές με πεζά γράμματα λειτουργούν καλά: 'draft', 'confirmed', 'cancelled'. Αποφύγετε τα αριθμητικά κλειδιά εκτός εάν η ακολουθία έχει πραγματικά σημασία, καθώς καθιστούν τον κώδικά σας πιο δύσκολο να διαβαστεί και να κατανοηθεί μήνες αργότερα.


2. Διατηρήστε τη λίστα σύντομη και εξαντλητική

Ένα πεδίο Επιλογής με περισσότερες από οκτώ ή δέκα επιλογές είναι συνήθως σημάδι ότι το πεδίο προσπαθεί να κάνει πάρα πολλά. Εάν η λίστα συνεχίζει να μεγαλώνει, εξετάστε εάν μια σχέση Many2one με ένα μοντέλο ρύθμισης θα ήταν πιο κατάλληλη. Αυτό δίνει στους χρήστες τη δυνατότητα να διαχειρίζονται τις επιλογές τους μέσω της διεπαφής, χωρίς να απαιτείται από έναν προγραμματιστή να ενημερώσει τον κώδικα ή τον ορισμό πεδίου βάσης δεδομένων.


3. Ορίστε πάντα μια προεπιλογή για τα απαιτούμενα πεδία

Εάν ένα πεδίο Επιλογής είναι απαιτούμενο, ορίστε επίσης μια λογική προεπιλεγμένη τιμή. Αυτό αποτρέπει σφάλματα επικύρωσης όταν δημιουργούνται εγγραφές προγραμματιστικά, μέσω εισαγωγών ή μέσω του API, όπου ο χρήστης δεν είναι παρών για να κάνει μια επιλογή. Η προεπιλογή θα πρέπει να αντιπροσωπεύει την πιο κοινή ή λιγότερο δεσμευμένη κατάσταση στη ροή εργασίας.


4. Χρησιμοποιήστε το selection_add όταν επεκτείνετε εγγενή πεδία

Εάν χρειάζεται να προσθέσετε επιλογές σε ένα υπάρχον πεδίο Odoo σε ένα προσαρμοσμένο module, χρησιμοποιήστε το selection_add αντί να επανακαθορίσετε το πλήρες πεδίο. Αυτό είναι πιο ασφαλές και πιο συμβατό με άλλα modules που μπορεί επίσης να επεκτείνουν το ίδιο πεδίο. Συνδυάστε το πάντα με την παράμετρο ondelete για να χειριστείτε τι συμβαίνει όταν απεγκαθίσταται το module σας.


5. Χρησιμοποιήστε το widget σήματος για ορατότητα σε λίστες

Στις λίστες και τις προβολές kanban, η προεπιλεγμένη απεικόνιση ενός πεδίου Επιλογής είναι απλώς κείμενο. Η προσθήκη του widget="badge" χαρακτηριστικού στο XML της προβολής μετατρέπει κάθε τιμή σε μια χρωματιστή ετικέτα, καθιστώντας το πεδίο πολύ πιο εύκολο στην αναγνώριση με μια ματιά. Αυτό είναι ιδιαίτερα χρήσιμο για πεδία κατάστασης όπου οι χρήστες χρειάζεται να εντοπίσουν γρήγορα εγγραφές που χρειάζονται προσοχή.


Κοινές παγίδες


Η αλλαγή ενός κλειδιού σπάει τα υπάρχοντα δεδομένα

Η ετικέτα μιας επιλογής μπορεί να αλλάξει με ασφάλεια οποιαδήποτε στιγμή, καθώς μόνο το κλειδί αποθηκεύεται στη βάση δεδομένων. Το κλειδί, ωστόσο, δεν πρέπει ποτέ να αλλάξει μόλις υπάρχουν εγγραφές με αυτή την τιμή. Εάν μετονομάσετε ένα κλειδί, όλες οι υπάρχουσες εγγραφές με το παλιό κλειδί θα εμφανίζουν μια κενή ή μη έγκυρη τιμή στην διεπαφή, και οποιαδήποτε φίλτρα τομέα ή αυτοματισμοί που χρησιμοποιούν το παλιό κλειδί θα σταματήσουν σιωπηλά να λειτουργούν. Εάν ένα κλειδί χρειάζεται πραγματικά να αλλάξει, πρέπει να εκτελέσετε ένα σενάριο μετανάστευσης δεδομένων για να ενημερώσετε πρώτα όλες τις υπάρχουσες εγγραφές.


Η αφαίρεση μιας επιλογής αφήνει ορφανές εγγραφές

Εάν αφαιρέσετε μια επιλογή από τη λίστα ενώ οι εγγραφές εξακολουθούν να κρατούν αυτό το κλειδί, αυτές οι εγγραφές θα εμφανίζουν μια ελλείπουσα ή σπασμένη τιμή. Πριν αφαιρέσετε οποιαδήποτε επιλογή, αναζητήστε εγγραφές που την χρησιμοποιούν ακόμα και είτε ενημερώστε τις σε μια έγκυρη τιμή είτε αρχειοθετήστε τις. Αυτό είναι ένα κοινό πρόβλημα κατά τη διάρκεια έργων καθαρισμού δεδομένων όταν η λίστα επιλογών σχεδιάστηκε χωρίς αρκετή ανάλυση εκ των προτέρων.


Χρησιμοποιώντας την ετικέτα αντί για το κλειδί σε φίλτρα τομέα

Ένα πολύ κοινό λάθος, ειδικά για λιγότερο τεχνικούς χρήστες που γράφουν κανόνες αυτοματισμού στη διεπαφή Odoo, είναι να φιλτράρουν με βάση την ανθρώπινα αναγνώσιμη ετικέτα αντί για το αποθηκευμένο κλειδί. Αυτό παράγει ένα τομέα που επιστρέφει μηδενικά αποτελέσματα χωρίς να προκαλεί σφάλμα, το οποίο μπορεί να είναι δύσκολο να διαγνωστεί. Πάντα ελέγξτε τον ορισμό του πεδίου για να επιβεβαιώσετε ποιο κλειδί αντιστοιχεί σε ποια ετικέτα πριν γράψετε ένα φίλτρο.


Χρησιμοποιώντας ένα πεδίο Επιλογής όπου είναι πιο κατάλληλο ένα Many2one

Εάν η λίστα επιλογών αλλάζει συχνά, εάν οι χρήστες χρειάζεται να τη διαχειρίζονται μόνοι τους χωρίς εμπλοκή προγραμματιστή, ή εάν οι επιλογές φέρουν πρόσθετα χαρακτηριστικά όπως χρώμα, ακολουθία ή συνδεδεμένο λογαριασμό, τότε μια σχέση Many2one με ένα μοντέλο διαμόρφωσης είναι η καλύτερη επιλογή. Τα πεδία Επιλογής είναι ιδανικά για σταθερές, διαχειριζόμενες από προγραμματιστές λίστες. Για οτιδήποτε πιο δυναμικό, το Many2one είναι πιο συντηρήσιμο μακροπρόθεσμα.


Μη διαχείριση της κενής τιμής στη λογική του server-side

Ένα πεδίο Επιλογής που δεν είναι υποχρεωτικό μπορεί να κρατά μια False τιμή όταν δεν έχει επιλεγεί καμία επιλογή. Εάν ο κώδικας Python σας ή η αυτοματοποιημένη ενέργεια συγκρίνει την τιμή του πεδίου με μια συμβολοσειρά χωρίς πρώτα να ελέγξει για False, θα λάβετε απροσδόκητη συμπεριφορά ή σφάλματα. Πάντα να διαχειρίζεστε την κενή περίπτωση ρητά σε ενέργειες server και υπολογισμένα πεδία που εξαρτώνται από ένα πεδίο Επιλογής.

Συμπέρασμα


Το πεδίο Επιλογής είναι ένας από αυτούς τους τύπους πεδίων που φαίνονται απλοί αλλά έχουν πραγματικό βάθος μόλις κατανοήσετε πώς λειτουργεί κάτω από την επιφάνεια. Η γνώση της διαφοράς μεταξύ ενός κλειδιού και μιας ετικέτας, η κατανόηση του πότε να χρησιμοποιήσετε το selection_add σε αντίθεση με την αναδιατύπωση ενός πεδίου, και η αναγνώριση του πότε ένα Many2one θα σας εξυπηρετούσε καλύτερα είναι οι διακρίσεις που χωρίζουν μια καλά σχεδιασμένη υλοποίηση Odoo από μία που προκαλεί προβλήματα ένα χρόνο αργότερα.


Είτε προσθέτετε έναν τύπο συμβολαίου μέσω του Odoo Studio, είτε ορίζετε ένα πεδίο χρονικής περιόδου παράδοσης σε ένα προσαρμοσμένο Python module, είτε δημιουργείτε ένα πεδίο κατάστασης ποιότητας μέσω του API, τα μοτίβα που περιγράφονται σε αυτόν τον οδηγό σας δίνουν ό,τι χρειάζεστε για να πάρετε τη σωστή απόφαση για την περίπτωση χρήσης σας.

Στο μοντέλο δεδομένων του Odoo, το πεδίο Επιλογής είναι ένα από τα κύρια εργαλεία για την επιβολή ποιότητας δεδομένων στην πηγή. Χρησιμοποιούμενο σωστά, διατηρεί τα αρχεία σας καθαρά, τις αναφορές σας ακριβείς και τις αυτοματοποιήσεις σας αξιόπιστες.

Στην Dasolo, βοηθάμε τις εταιρείες να υλοποιούν, να προσαρμόζουν και να βελτιστοποιούν το Odoo σε όλα τα τμήματα. Είτε χρειάζεστε βοήθεια στο σχεδιασμό ενός καθαρού μοντέλου δεδομένων, στην προσθήκη προσαρμοσμένων πεδίων στις ροές εργασίας σας, είτε στην κατασκευή ενός πλήρους Odoo module από την αρχή, η ομάδα μας είναι εδώ για να βοηθήσει. Επικοινωνήστε μαζί μας και ας μιλήσουμε για το έργο σας στο Odoo.

Πεδίο Επιλογής στο Odoo: Ο Απόλυτος Οδηγός
Dasolo 6 Μαρτίου 2026
Share this post
Σύνδεση to leave a comment