0
votes

Si-autre déclaration à Python Django

Je suis nouveau à Django et j'ai un problème que je ne pouvais pas résoudre. J'essaie d'afficher une question spécifique et un autre attribut associé de mon modèle de questions basé sur un champ du modèle participant. Le problème ici est que cela va directement à la déclaration d'autre même lorsque la condition est vraie.Je essayé d'imprimer (participant.condition) et cela fonctionne donc je ne sais pas pourquoi cela ne fonctionne pas avec la déclaration IF. xxx

Mes modèles comme suit: xxx


1 commentaires

Est-ce que si participant.condition.name == 'LPN': travail?


3 Réponses :


2
votes

Vous devez modifier ceci: xxx

à: xxx


0 commentaires

2
votes

condition est une clé étrangère, pas une chaîne. Vous comparez-le contre 'LPN' , mais aucune instance de votre modèle sera égale à cette chaîne.

Essayez si participant.condition.name == 'LPN': Pour comparer le champ Nom sur la condition Condition à cette chaîne.

Votre instruction Imprimer Les affiche comme apparemment étant identique car vous avez défini comment présenter les instances de condition en tant que chaînes avec votre __ str __ - Il imprimera le nom de l'instance , mais cela ne signifie pas que la valeur est en fait égale à cette chaîne.


0 commentaires

0
votes

Vous devrez peut-être utiliser

from .models import Participant
participant = Participant.objects.get(user = request.user)


2 commentaires

déjà sur mon point de vue et que le participant a été créé dans une autre vue


Django interroge la base de données au moment de la rendu, si elle est différente, elle ne sera pas accessible dans une autre, vous devez la questionner à chaque fois que vous en avez besoin.