Méthode similaire à la "startswith" dans Jinja2/Flacon
Je suis à la recherche de la méthode/de manière qui est similaire à python startswith.
Ce que je voudrais faire est de lier certains champs dans le tableau qui commence par "i".
Mon étapes:
- J'ai créé filtre, qui retourne True/False:
@app.template_filter('startswith') def starts_with(field): if field.startswith("i-"): return True return False
associé à un modèle:
{% for field in row %}
{% if {{ field | startswith }} %}
<td><a href="{{ url_for('munin') }}">{{ field | table_field | safe }}</a></td>
{% else %}
<td>{{ field | table_field | safe}}</td>
{% endif %}
{% endfor %}
Unfortunatetly, il ne fonctionne pas.
Deuxième étape. Je l'ai fait sans filtre, mais en modèle
{% for field in row %}
{% if field[:2] == 'i-' %}
<td><a href="{{ url_for('munin') }}">{{ field | table_field | safe }}</a></td>
{% else %}
<td>{{ field | table_field | safe}}</td>
{% endif %}
{% endfor %}
Qui fonctionne, mais à ce modèle sont l'envoi de données différentes, et il ne fonctionne que pour ce cas. Je pense que [:2] pourrait être buggé un peu.
J'ai donc essayer de filtre d'écriture ou peut-être il ya une méthode qui, je saute dans la documentation.
Que veut dire "ça ne fonctionne pas"?
Erreur Interne Du Serveur
Erreur Interne Du Serveur
OriginalL'auteur Ojmeny | 2015-02-05
Vous devez vous connecter pour publier un commentaire.
L'expression
{% if {{ field | startswith }} %}
ne fonctionnera pas parce que vous ne pouvez pas imbriquer des blocs à l'intérieur les uns des autres. Vous pouvez probablement vous en sortir avec{% if (field|startswith) %}
mais un custom test (test personnalisé plutôt que d'un filtre, ce serait une meilleure solution.Quelque chose comme
Ensuite dans votre modèle, vous pouvez écrire
{% if field is link_field %}
OriginalL'auteur kylewm
Une meilleure solution....
Vous pouvez utiliser startswith directement dans le champ.nom car le champ.nom renvoie une Chaîne de caractères.
Plus, vous pouvez utiliser n'importe quelle Chaîne de fonction, y compris
str.endswith()
, par exemple.OriginalL'auteur Frederico Oliveira