Documentation Frappe Framework

Frappe Framework

Méthodes de contrôleur

Sixième étape du tutoriel : créer le DocType Library Member et calculer automatiquement le champ Full Name grâce à la méthode before_save du contrôleur Python.

2 min de lectureMis à jour le Source : docs.frappe.io

À quoi servent les méthodes de contrôleur

Les méthodes de contrôleur (Controller Methods) permettent d’écrire la logique métier exécutée au cours du cycle de vie d’un document.

Créer le DocType Library Member

Créons notre deuxième DocType : Library Member. Il comporte les champs suivants :

Libellé du champTypeRemarque
First NameDataObligatoire (Mandatory)
Last NameData
Full NameDataLecture seule (Read Only)
Email AddressData
PhoneData

La documentation officielle illustre la création de ce DocType par une animation.

Une fois le DocType créé, ouvrez la liste Library Member, videz le cache via Settings > Reload et créez un nouveau membre.

Vous remarquerez que le champ Full Name n’apparaît pas dans le formulaire : nous l’avons défini en lecture seule, il ne s’affiche que lorsqu’il contient une valeur.

Calculer Full Name dans le contrôleur Python

Écrivons du code dans la classe du contrôleur Python afin que Full Name soit calculé automatiquement à partir de First Name et Last Name.

Ouvrez le fichier library_member.py dans votre éditeur et apportez les modifications suivantes :

librarymember.py

python
class LibraryMember(Document):
    #this method will run every time a document is saved
    def before_save(self):
        self.full_name = f'{self.first_name} {self.last_name or ""}'

À retenir

Si ce code ne fonctionne pas chez vous, vérifiez que les scripts côté serveur sont activés, puis redémarrez bench.

terminal
bench set-config -g server_script_enabled true

La logique est placée dans la méthode before_save, exécutée à chaque enregistrement d’un document. C’est l’un des nombreux hooks fournis par la classe Document. La liste complète des hooks disponibles est décrite dans la page Contrôleurs.

Revenez dans le bureau, créez un autre membre et constatez que Full Name apparaît après l’enregistrement.

Étape suivante : Types de DocType.

Pages liées

Tutoriel Frappe : méthodes de contrôleur d’un DocType | ERPNext Lab