2008-11-08 5 views
2

Je travaille avec django Publisher exemple, je veux lister tous les éditeurs dans la base de données via mon template list_publisher.html, mon modèle ressemble;Comment puis-je lister des éléments dans mes modèles Django?

{% extends "admin/base_site.html" %} 
{% block title %}List of books by publisher{% endblock %} 
{% block content %} 

<div id="content-main"> 
<h1>List of publisher:</h1> 

{%regroup publisher by name as pub_list %} 


{% for pub in pub_list %} 


<li>{{ pub.name }}</li> 

{% endfor %} 
</div> 
{% endblock %} 

mais quand je lance « http://127.0.0.1:8000/list_publisher/ » le modèle imprime juste le titre de la page sans erreur! Qu'est-ce que je fais mal?

+0

vient d'ajouter la définition de l'éditeur et la commande_de suggestions – VonC

Répondre

3

Quelques suggestions:

  • Vérifiez que votre base_site.html ne définit une section {% block content %}{% endblock %} à affiner votre mon list_publisher.html
  • vérifier la cardinalité de votre liste: {%regroup publisher by name as pub_list %}{{ pub_list|length }}. Cela devrait au moins afficher la longueur de votre liste. Si est « 0 » ... vous savez pourquoi il n'affiche rien
  • vérifier que votre liste est en effet triée par nom avant d'utiliser regroup ou utilisez un {% regroup publisher|dictsort:"name" by name as pub_list %} pour être sûr

Si la longueur est '0', vous devez vous assurer que l'éditeur est défini (a été initialisé à partir de la base de données) et trié de manière appropriée.

En d'autres termes, vous voyez partout (dans votre modèle ou dans les modèles définis):

publisher = Publisher.objects.all().order_by("name") 

?
(encore une fois, l'ordre par nom est important, pour s'assurer que votre tag de regroupement fonctionne correctement)

+0

La longueur est 0, mais quand je la vérifie via l'interface d'administration, elle a 4 enregistrements ?? – gath

+0

Cela signifie que l'éditeur n'est pas connu/déclaré lorsque vous arrivez dans cette génération de page – VonC

0

Bonne réponse de VonC.

Une manière rapide et sale de regarder pub_list est de coller [{{pub_list}}] dans votre modèle. Je l'ai mis entre crochets au cas où il serait vide. BTW, vous pouvez obtenir quelque chose qui ressemble à [,,,,,]. C'est parce que les références d'objet sont enveloppées dans <> et votre navigateur va WTF? Faites juste une vue de la source et vous verrez le résultat complet.