Version de développement
Cette documentation décrit la version « next » (develop), non encore publiée. Pour la version stable, basculez sur « v5 » dans l'en-tête.
Développeurs

Documents en lecture seule (SafeDoc)

Méthodes disponibles sur les documents que frappe.get_doc renvoie dans un modèle Jinja : get_formatted, get_label_from_fieldname, in_format_data, is_print_hide et meta.

Documents en lecture seule (SafeDoc)

Dans un modèle Jinja (format d'impression, modèle d'e-mail), frappe.get_doc, frappe.get_cached_doc et frappe.get_last_doc ne renvoient pas un Document. Ils renvoient un SafeDoc : une copie du document en dictionnaire. Un SafeDoc expose les valeurs des champs et les lignes des tables enfants. Il n'a pas les méthodes qui écrivent en base (save, submit, delete…).

Pour le choix entre contexte de rendu et contexte d'exécution, voir Exécution sécurisée des scripts. Dans un script serveur, frappe.get_doc renvoie un Document complet, pas un SafeDoc.

Champs et tables enfants

Lisez un champ comme un attribut ou une clé : client.customer_name ou client["customer_name"]. Chaque ligne d'une table enfant est aussi un SafeDoc, lié à son document parent.

Méthodes

MéthodeRésultat
get_formatted(fieldname, doc=None, currency=None, absolute_value=False, translated=False, format=None)La valeur du champ formatée selon son type (date, devise, nombre)
get_label_from_fieldname(fieldname)Le libellé traduit du champ, ou None si le champ n'existe pas
in_format_data(fieldname)True si le champ fait partie des champs choisis dans un format d'impression du générateur. Sans sélection, renvoie toujours True
is_print_hide(fieldname, df=None, for_print=True)Une valeur vraie si le champ est masqué à l'impression (option Masquer à l'impression, ou valeur 0 avec Masquer à l'impression si la valeur est nulle)
meta (propriété)Les métadonnées du DocType en dictionnaire, ou None si le document n'a pas de champ doctype

Pour un champ Devise sans devise fournie, get_formatted prend la devise du champ indiqué dans les options du champ.

Exemple

Ce modèle affiche le total d'une facture et le libellé de son champ. ACC-SINV-2026-00001 est un nom fictif.

{% set facture = frappe.get_doc("Sales Invoice", "ACC-SINV-2026-00001") %}
<p>{{ facture.get_label_from_fieldname("grand_total") }} :
   {{ facture.get_formatted("grand_total") }}</p>

{% for ligne in facture.items %}
  {% if not ligne.is_print_hide("discount_amount") %}
    <p>{{ ligne.item_name }} : {{ ligne.get_formatted("discount_amount") }}</p>
  {% endif %}
{% endfor %}

get_formatted d'une ligne enfant utilise le document parent pour le formatage, par exemple pour la devise.