Frappe Framework
DocType enfant (table)
Un DocType enfant ne peut être lié qu’à un DocType parent et sert à stocker plusieurs enregistrements pour un même document. Cette page montre comment le créer et le relier.
À quoi sert un DocType enfant
Jusqu’ici, nous n’avons vu que des DocTypes où chaque champ ne contient qu’une seule valeur. Il arrive pourtant qu’on doive stocker plusieurs enregistrements rattachés à un seul document : c’est une relation plusieurs-à-un (many-to-one). Un DocType enfant (Child DocType) est un DocType qui ne peut être lié qu’à un DocType parent.
Créer et relier un DocType enfant
- Lors de la création du DocType enfant, cochez Is Child Table.
- Pour relier ce DocType enfant à son parent, ajoutez dans le DocType parent une ligne de champ de type Table, avec le nom du DocType enfant dans les options.
La documentation officielle illustre ces deux étapes par des captures d’écran.
Les enregistrements du DocType enfant sont directement rattachés au document parent :
>>> person = frappe.get_doc('Person', '000001')
>>> person.as_dict()
{
'first_name': 'John',
'last_name': 'Doe',
'qualifications': [
{'title': 'Frontend Architect', 'year': '2017'},
{'title': 'DevOps Engineer', 'year': '2016'},
]
}Propriétés des documents enfants
Les documents enfants possèdent des propriétés particulières qui définissent leur relation avec le parent :
| Propriété | Description |
|---|---|
parent | Nom (name) du document parent |
parenttype | DocType du parent |
parentfield | Champ du parent qui relie cet enfant au parent |
idx | Numéro d’ordre (ligne) |
Pages liées
- Types de champs : le champ Table.
- Nommage des documents : les DocTypes enfants ne suivent pas les règles de nommage.
