IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Django Python Discussion :

tutoriel Django : ne pas afficher une question sans choix [Python 3.X]


Sujet :

Django Python

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 16
    Points : 29
    Points
    29
    Par défaut tutoriel Django : ne pas afficher une question sans choix
    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.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 16
    Points : 29
    Points
    29
    Par défaut Solution sans opérateur
    En fait c'est tout con, j'ai tenté, à la faveur de ce que j'ai vu sur un bout code d'un tuto qu'il n'y a pas besoin avec python de préciser l'opérateur de test.

    Du coup il suffit de remplcer la ligne 4 par ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    {% if question.choix_set.count %}

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 13/04/2006, 22h54
  2. [C#]Afficher une forme sans qu'elle se ferme
    Par gilles641 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 30/03/2006, 12h25
  3. Afficher une image sans URL dans un forum
    Par Vanesse dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 2
    Dernier message: 01/03/2006, 17h55
  4. Ne pas afficher une ligne selon une valeur
    Par uloaccess dans le forum Access
    Réponses: 3
    Dernier message: 18/11/2005, 14h04
  5. Afficher une image sans passer par les textures
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/05/2003, 19h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo