7
votes

Vérifier si quelque chose existe dans les éléments de la variable de la liste dans le modèle Django

J'ai une liste de sections que je passe à un modèle Django. Les sections ont des types différents. Je veux dire "s'il y a une section de ce type, affichez cette ligne" dans mon modèle, mais avoir un problème. Ce que j'essaie essentiellement de faire est-ce. XXX

mais bien sûr que cela ne fonctionne pas. N'importe quelle idée comment essentiellement en une ligne de ligne via les éléments d'une liste et faire une déclaration IF?

Info supplémentaire: Je pourrais potentiellement avoir plusieurs sections "sociales". Ce que j'essaie de faire dans le modèle, c'est dire "s'il y a des sections sociales, affichez cette div. Sinon, n'ayez pas afficher la DIV." Mais je ne veux pas que la Div se répète, ce qui se passerait avec le code ci-dessus.


0 commentaires

3 Réponses :


13
votes

Vous ne pouvez pas utiliser de compréhensions de liste dans les modèles:

{% for s in sections %}
  {% if s.name == 'Social' %}
    Hello Social!
  {% endif %} {# closing if body #}
{% endfor %} {# closing for body #}


2 commentaires

Devrait être s.name == 'social' .


Peut-être que j'aurais dû inclure des informations différentes. Je pourrais potentiellement avoir plusieurs sections "sociales". Ce que j'essaie de faire dans le modèle, c'est dire "s'il y a des sections sociales, affichez cette div. Sinon, n'ayez pas afficher la DIV." Mais je ne veux pas que la Div se répète, ce qui se passerait avec le code ci-dessus. Les pensées?



17
votes

Idéalement ce que vous feriez, c'est créer une liste que le modèle obtient comme tel: xxx

et dans le modèle, utilisez: xxx P> Vous essayez de mettre plus de logique dans un modèle que ce qu'ils sont censés avoir. Les modèles doivent utiliser aussi peu de logique que possible, tandis que la logique doit être dans le code qui remplit le modèle.


0 commentaires

0
votes
{% if sections.0.name == "Social" %}
    Hello Social!
{% endif %}

0 commentaires