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

Réseau/Web Python Discussion :

[django] query arrive vide (résolu)


Sujet :

Réseau/Web Python

  1. #1
    Membre à l'essai
    [django] query arrive vide (résolu)
    Bonjour, j'espère que je poste au bon endroit j'ai pas trouvé de forum django.

    Désolé si ma question est idiote mais je débute un peu en programmation.
    je ne comprends pas trop mon problème... Je fais une commande qui reviens souvent dans mon code et qui fonctionne dans le shell. Mais qui arrive vide dans le template.

    j'appelle mon modèle par "tof=Photo.objects.all()" dans mon views..et il arrive vide dans mon lire.html... Pourquoi? Il y a un coquille de type virgule manquante ou bien un url que je dois ajouter quelque part? Pffff une journée que je triture mon code pour le même résultat..

    fonctionne dans le shell
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    >>> tof=Photo.objects.all()
    >>> for donnee in tof :
    ...     print (donnee.titretof)
    ... 
    1
    une butte
    basilic menthe
    basilic vue de loin
    buttes2
    >>> for donnee in tof :
    ...     print (artsource.id)
    ... 
    Traceback (most recent call last):
      File "<console>", line 2, in <module>
    NameError: name 'artsource' is not defined
    >>> for donnee in tof :
    ...     print (donnee.artsource.id)
    ... 
    3
    3
    4
    4
    3
    >>> for donnee in tof :
    ...     print (donnee.tof)
    ... 
    photos/1_1_H27xyoj.jpg
    photos/1_2_SyQTf5o.jpg
    photos/2_1_HqJS48v.jpg
    photos/2_2_lnIilc4.jpg
    photos/1_3.jpg


    mon views.py
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    from django.http import Http404
    from django.shortcuts import render, get_object_or_404
    from art.models import Art, Photo
    import os
     
    def accueil(request):
     
        articles = Art.objects.all() 
        return render(request, 'art/accueil.html', {'derniers_articles': articles})
     
     
    def lire(request, id):
        article = get_object_or_404(Art, id=id)
        tof=Photo.objects.all()
        return render(request, 'art/lire.html', {'article':article}, {'lestof' : tof})


    lire.html
    Code HTML :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <h1>{{ article.titre }} <span class="small"></span></h1>
    <p class="infos">Rédigé par {{ article.auteur }}, le {{ article.date|date:"DATE_FORMAT" }}</p>
    <div class="contenu">{{ article.contenu|linebreaks }}</div>
    <h1>Les tofs</h1>
    {% for  donnee in lestof %}
        <h2>{{ donnee.titretof }}</h2>
     
    {% empty %}
        <p>Aucune photo</p>
    {% endfor %}
    {% load static %}
    <img src="{% static 'blogPerma/1_3.jpg' %}" alt="Mon image" />


    merci..

  2. #2
    Expert confirmé
    La ligne 15 dans views.py est fausse,

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    {'article': article, 'lestof': tof}


    il ne faut qu'un seul dictionnaire avec ses clés et ses valeurs, et non plusieurs dictionnaires comme tu le présentes dans ton code.
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  3. #3
    Membre à l'essai
    merci mille fois.............

###raw>template_hook.ano_emploi###