122 votes

Quel est l'équivalent de "none" dans les modèles de django ?

Je veux voir si un champ/variable est inexistant dans un modèle Django. Quelle est la syntaxe correcte pour cela ?

Voici ce que j'ai actuellement :

{% if profile.user.first_name is null %}
  <p> -- </p>
{% elif %}
  {{ profile.user.first_name }} {{ profile.user.last_name }}
{% endif%}

Dans l'exemple ci-dessus, qu'est-ce que j'utiliserais pour remplacer "null" ?

3voto

Dougal Points 15023

{% if profile.user.first_name %} fonctionne (en supposant que vous ne voulez pas non plus accepter '' ).

if dans Python en général traite None , False , '' , [] , {} ... tous faux.

1voto

piertoni Points 675

Juste une remarque sur les réponses précédentes : Tout est correct si l'on veut afficher une chaîne de caractères, mais faites attention si vous voulez afficher des nombres.

En particulier lorsque vous avez une valeur 0 bool(0) évalue à False et donc il ne s'affichera pas et ce n'est probablement pas ce que vous voulez.

Dans ce cas, il vaut mieux utiliser

{% if profile.user.credit != None %}

0voto

claypooj Points 1

Vous pouvez essayer ceci :

{% if not profile.user.first_name.value %}
  <p> -- </p>
{% else %}
  {{ profile.user.first_name }} {{ profile.user.last_name }}
{% endif %}

De cette façon, vous vérifiez essentiellement si le champ du formulaire first_name a une valeur quelconque qui lui est associée. Voir {{ field.value }} en Boucle sur les champs du formulaire dans la documentation de Django .

J'utilise Django 3.0.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X