Préremplissage d’un bloc de champ#

Préremplir un bloc de champ n’est pas chose aisée, si vous rencontrez des difficultés n’hésitez pas à ouvrir un ticket

Attention, les exemples donnés ici comportent des retours à la ligne pour plus de clarté et nous vous recommandons de construire votre condition de cette façon. Mais avant de la coller dans le champ de préremplissage veillez à bien supprimer les retours à la ligne

Avec une boucle for simple#

Façon la plus simple de préremplir un bloc de champs conviendra à la plupart des cas

exemple:

{% block_value init=True as diseases_details %}
{% for i in form_var_fiche_sante %}
{% block_value gravite=i|get:"gravity"|default:"" traitement=i|get:"traitement"|default:"" append=diseases_details as diseases_details %}
{% endfor %}
{% block_value output=diseases_details %}
  • diseases_details : l’identifiant de votre bloc de champs

  • form_var_fiche_sante : la liste qui va servir à préremplir votre bloc de champs

  • gravite et traitement : les champs de votre bloc de champs, pas besoin de respecter l’ordre

  • i : représente la ligne de votre liste.

  • |get:“gravity”|default:“” : une manière d’aller chercher les données dans votre ligne. En fonction de la nature de votre liste, la méthode peut changer

  • Le reste sont des conventions à respecter

Avec une boucle sur un range#

Façon beaucoup plus complexe qui n’est nécessaire que quand les données se trouvent dans plusieurs listes.

{% block_value init=True as diseases_details %}
{% with form_var_diseases|length as length %}
{% with ''|center:length as range %}
{% for _ in range %}
{% block_value disease=form_var_fiche_sante.disease_ids|get:forloop.counter0 gravity=form_var_fiche_sante.disease_details|get:forloop.counter0|get:"gravity"|default:"" treatment=form_var_fiche_sante.disease_details|get:forloop.counter0|get:"treatment"|default:"" append=diseases_details as diseases_details %}
{% endfor %}
{% endwith %}
{% endwith %}
{% block_value output=diseases_details %}
  • {% with form_var_diseases|length as length %} : calcul la longueur total de la boucle.

  • {% with ‘’|center:length as range %} : permet de transformer la longueur total de la boucle en liste.

  • forloop.counter0 : permet de récupérer le numéro de l’itération en partant de 0.