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 :
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]
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 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.
Could not parse the remainder: '()' from 'question.choix_set.count()'
Je n'arrive pas comprendre pourquoi et encore moins à corriger.... Pourriez m'aider siouplait ? Merci.