Odoo, modèle, champ relationnel, livre, librairie, éditeur, Informatique, relation, champ, hiérarchie, Base de données, contrainte, BDD Base de données, Python, code
Dans cette partie, nous aborderons les éléments suivants :
- Ajouter des champs relationnels à un modèle
- Ajouter une hiérarchie à un modèle
- Ajout de validations de contraintes à un modèle
- Ajouter des champs calculés à un modèle
- Ajout de fonctionnalités à un modèle à l'aide de l'héritage
[...] def _check_hierarchy(self): if not self._check_recursion(): raise models.ValidationError('Error You cannot create recursive categories.') Pour attribuer une catégorie à un livre, nous allons ajouter un nouveau champ many2one au modèle library.book : category_id = fields.Many2one('library.book.category') une mise à niveau du module rendra ces modifications effectives. Pour afficher le modèle library.book.category dans l'interface utilisateur, vous devrez ajouter des menus, des vues et des règles de sécurité. Odoo 14 01/01/ III. Ajout de validations de contraintes à un modèle Les modèles peuvent avoir des validations les empêchant d'entrer dans des conditions indésirables. [...]
[...] from odoo import models, fields class ResPartner(models.Model): _inherit = 'res.partner' published_book_ids = fields.One2many('library.book', 'publisher_id',string='Published Books') Odoo 14 01/01/ I. Ajouter des champs relationnels à un modèle Pour visualiser l'éditeur de chaque livre, on ajoute le champ publisher_id au fichier library_book_view,xml dans le vue forme:
[...] Odoo 14 01/01/ V. Ajout de fonctionnalités à un modèle à l'aide de l'héritage Nous allons voir l'héritage du prototype, qui est utilisé pour copier la définition entière du modèle existant. Dans cette partie, nous allons faire une copie du modèle library.book. L'héritage de prototype est exécuté en utilisant les attributs de classe _name et _inherit en même temps. Effectuez les étapes suivantes pour générer une copie du modèle library.book : Odoo 14 01/01/ V. Ajout de fonctionnalités à un modèle à l'aide de l'héritage Ajoutez un nouveau fichier appelé library_book_copy.py répertoire /my_library/models/. [...]
[...] age_days = fields.Float(string='Days Since Release',compute='_compute_age',) Odoo 14 01/01/ IV. Ajouter des champs calculés à un modèle Ensuite, ajoutez la méthode avec la logique de calcul de la valeur : # . from odoo import api # if not already imported # . class LibraryBook(models.Model): # . def _compute_age(self): today = fields.Date.today() for book in self: if book.date_release: delta = today - book.date_release book.age_days = delta.days else: book.age_days = 0 Odoo 14 01/01/ IV. Ajouter des champs calculés à un modèle Le décorateur joue le rôle d'un trigger. [...]
[...] Si la vérification échoue, une exception ValidationError sera levée. Odoo 14 01/01/ IV. Ajouter des champs calculés à un modèle Parfois, nous avons besoin d'un champ dont la valeur est calculée ou dérivée d'autres champs du même enregistrement ou d'enregistrements associés. Nous allons ajouter un au modèle Library Books pour calculer le nombre de jours depuis la date de sortie du livre. On ajoute un nouveau champ au modèle Library Books age_days : class LibraryBook(models.Model): # . [...]
Source aux normes APA
Pour votre bibliographieLecture en ligne
avec notre liseuse dédiée !Contenu vérifié
par notre comité de lecture