Ola la compagnie,
Je viens de décider d'apprendre python et en particulier django. Donc je suis le tutoriel qu'ils proposent : création d'un sondage.
Il y a deux tables : pour les questions ; pour les réponses possibles à une question ; et bien sûr clé étrangère côté réponses identifiant la question idoine.
Dans les vues, il y a une sélection des dernières questions à afficher :
Le problème : ne pas afficher les questions qui n'ont pas encore de réponses enregistrées dans la table des choix. Je pensais faire ça dans le modèle de mise en page comme ceci (derq = les dernières questions à afficher)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 class IndexView(generic.ListView): template_name = 'sondage/index.html' context_object_name = 'derq' def get_queryset(self): """Retourne les 5 dernières questions sans celles du future.""" return Question.objects.filter( pub_date__lte=timezone.now() ).order_by('-pub_date')[:4]
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 {% if derq %} <ul> {% for question in derq %} {% if question.choix_set.count() > 0 %} <li><a href="{% url 'sondage:detail' question.id %}">{{ question.question_text }}</a></li> {% endif %} {% endfor %} </ul> {% else %} <p>Pas de sondage dispo.</p> {% endif %}
Ça a pas l'air idiot dans le principe?... mais la syntaxe n'est pas la bonne.
Je n'arrive pas comprendre pourquoi et encore moins à corriger.... Pourriez m'aider siouplait ? Merci.Could not parse the remainder: '()' from 'question.choix_set.count()'
Partager