Documentation Frappe Framework

Frappe Framework

Pages dynamiques

Jinja affiche la page. Un fichier Python homonyme remplit l’objet context dans get_context avant le rendu.

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

À quoi sert get_context

Les pages se rendent de façon dynamique avec le langage de modèles Jinja. Pour interroger des données, on met à jour l’objet context transmis au modèle. Cela se fait dans un fichier .py qui porte le même nom que la page, par exemple index.py pour index.md, et qui définit une méthode get_context.

Exemple : liste d’utilisateurs

Pour une page qui affiche les utilisateurs, placez users.html et users.py dans le dossier www/.

users.py charge la liste et la pose sur le contexte :

python
import frappe

def get_context(context):
    context.users = frappe.get_list("User", fields=["first_name", "last_name"])

Le modèle parcourt users et affiche le prénom, puis le nom s’il existe :

code
{% for user in users %}
{{ user.first_name }} {{ user.get("last_name", "") }}
{% endfor %}

Point d’attention

Le fichier Python doit porter exactement le même nom que la page. frappe.get_list ne demande ici que first_name et last_name. La source ne filtre pas les utilisateurs.