ERPNext
Récupérer des valeurs de table enfant avec Jinja
doc.champ ne suffit pas pour une table enfant. On parcourt ses lignes en Jinja, après avoir lu le nom de la variable dans Personnaliser le formulaire.
Pourquoi une boucle
Jinja peut citer n'importe quel champ de n'importe quel DocType. Sur un format, {{ doc.field_name }} suffit, où le nom après doc est le nom de variable du champ.
Cela ne marche pas pour une table enfant du DocType. Il faut parcourir ses lignes.
Préparer les noms
Il faut le nom de variable de la table enfant sur le DocType. On le voit dans Personnaliser le formulaire. Il faut aussi les noms de variable des champs de la table, lus de la même façon sur le formulaire de la table enfant.
Liste
La première méthode affiche les lignes en liste non ordonnée. L'exemple officiel parcourt doc.items :
{% for row in doc.items %}
* Item Code: {{ row.get_formatted("item_code", doc) }}
Quantity: {{ row.get_formatted("qty", doc) }}
Rate: {{ row.get_formatted("rate", doc) }}
Amount: {{ row.get_formatted("amount", doc) }}
{% endfor %}Tableau
La seconde méthode affiche les lignes en tableau, avec les colonnes Code article, Quantité, Taux et Montant. Les cellules visibles dans la source sont :
{{ item.item_code }}
{{ item.qty }}
{{ item.rate }}
{{ item.amount }}L'export de la page ne conserve pas le HTML complet de ce second exemple, notamment la boucle qui entoure le tableau. La page dit que ce modèle sert de référence : tout champ supplémentaire de la table enfant se récupère de la même façon, en adaptant le modèle Jinja.
