Frappe Framework
Pages dynamiques
Jinja affiche la page. Un fichier Python homonyme remplit l’objet context dans get_context avant le rendu.
À 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 :
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 :
{% 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.
