2011-04-15 3 views

Répondre

3

Jason Culverhouse fourni la réponse dans un autre question similaire j'ai demandé.

Faux et Aucun sont traités comme des variables, au lieu de constantes. Si les variables ne sont pas trouvées dans le dictionnaire de contexte, elles sont résolues à None.

1

C'est exactement la façon dont Python résout la 'vérité' pour la comparaison entre différents types.

Voir les docs. "Aucun" est considéré comme faux.

http://docs.python.org/library/stdtypes.html#truth-value-testing

Edit: comme ci-dessous, la console python ne confirme pas ce comportement, donc, je suis aussi surpris. -1 à moi!

+1

si None == False ne cède pas dans ma console python. – goh

+0

Il suffit de taper "None == False" – laher

+0

(laisser tomber le "si") – laher

3

Bizarre. En python normal,

if None == False: 
    # this will not run 
    print "abc" 

File un bug sur Django. :)

+0

Essayer de classer un ticket mais a obtenu l'erreur suivante: Soumission rejetée comme spam potentiel (BlogSpam indique que le contenu est un spam (badip: state/blacklist.d/127.0.0.1)) – goh

0

Pour l'instant il semble que vous devrez créer votre propre filtre de modèle comme cela a été suggéré dans ce post

+0

Je suppose que je vais le faire dans mon côté de la vue logique . – goh

0

Vous pouvez également faire if not None.

Questions connexes