Documentation Frappe Framework

Frappe Framework

DocField

Un DocField définit une propriété (un champ) d’un DocType : nom de colonne, libellé, type de donnée et conditions d’affichage. Cette page présente ses principales propriétés avec un exemple.

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

Qu’est-ce qu’un DocField

Un DocField définit une propriété (ou un champ) d’un DocType. Pour chaque DocField, vous pouvez définir le nom de colonne, le libellé, le type de donnée et bien d’autres attributs. Par exemple, le DocType ToDo possède les champs description, status et priority. Ces champs deviennent au final des colonnes de la table tabToDo en base de données.

Exemple

Le DocField stocke des métadonnées sur le champ. Quelques-unes sont décrites dans l’exemple ci-dessous.

json
[
 {
 "label": "Description", // the value shown to the user (Form, Print, etc)
 "fieldname": "description", // the property name we refer in code, also the column name
 "fieldtype": "Text Editor", // the fieldtype which also decides how to store this value
 "reqd": 1 // whether this field is mandatory
 },
 {
 "label": "Status",
 "fieldname": "status",
 "fieldtype": "Select",
 "options": [
 "Open",
 "Pending",
 "Closed"
 ]
 },
 {
 "label": "Priority",
 "fieldname": "priority",
 "fieldtype": "Select",
 "options": [ // list of options for select
 "Low",
 "Medium",
 "High"
 ],
 "default": "Low" // the default value to be set
 },
 {
 "label": "Completed By",
 "fieldname": "completed_by",
 "fieldtype": "Link",
 "options": "User",
 "depends_on": "eval: doc.status == 'Closed'", // the condition on which this field's display depends
 },
 {
 "collapsible": 1,
 "collapsible_depends_on": "eval:doc.status!='Closed'", // determines if a Section Break field is collapsible
 "fieldname": "sb_details",
 "fieldtype": "Section Break",
 "label": "Details"
 },
 {
 "fieldname": "amount",
 "fieldtype": "Currency", // Currency field
 "label": "Amount",
 "non_negative": 1, // determines whether this field value can be negative
 "options": "INR",
 }
]

Les propriétés illustrées dans cet exemple :

PropriétéRôle
labelValeur affichée à l’utilisateur (formulaire, impression, etc.)
fieldnameNom de la propriété utilisé dans le code, et nom de la colonne
fieldtypeType de champ, qui détermine aussi la façon de stocker la valeur
reqdIndique si le champ est obligatoire
optionsListe des options d’un champ Select, ou DocType cible d’un champ Link, ou devise d’un champ Currency
defaultValeur par défaut
depends_onCondition dont dépend l’affichage du champ
collapsibleIndique si un Section Break est repliable
collapsible_depends_onCondition déterminant si le Section Break est replié
non_negativeIndique si la valeur du champ peut être négative

Conditions d’obligation et de lecture seule

Sur le même principe que depends_on, qui détermine si un champ est affiché, deux nouvelles propriétés ont été introduites dans la version 12 :

PropriétéEffet
mandatory_depends_onSi la condition est remplie, le champ devient obligatoire
read_only_depends_onSi la condition est remplie, le champ devient en lecture seule

Types de champs disponibles

Frappe est livré avec plus de 30 types de champs (fieldtypes) prêts à l’emploi, couvrant une grande variété de cas d’usage. Ils sont détaillés dans la page Types de champs.

Pages liées