Question

Je travaille avec django Publisher, par exemple, je souhaite répertorier tous les éditeurs de la base de données via mon modèle list_publisher.html. Mon modèle ressemble à;

{% 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/ / a> " le modèle n'imprime que le titre de la page sans erreur! Qu'est-ce que je fais mal?

Était-ce utile?

La solution

Quelques suggestions:

  • vérifiez que votre base_site.html définit une {% block content %}{% endblock %} section à affiner par votre my list_publisher.html
  • vérifiez 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 is is '0' ... vous savez pourquoi il n'affiche rien
  • vérifiez que votre liste est bien triée par nom avant d'utiliser regrouper 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é correctement.

En d'autres termes, voyez-vous n'importe où (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 que votre balise de regroupement fonctionne correctement)

Autres conseils

Bonne réponse de VonC.

Une façon rapide et sale de consulter pub_list consiste à coller [{{pub_list}}] dans votre modèle. Je le mets entre crochets au cas où il serait vide. BTW, vous pouvez obtenir quelque chose qui ressemble à [,,,,,]. En effet, les références aux objets sont encapsulées dans & Lt; & Gt; et votre navigateur va WTF? Il suffit de faire un View Source et vous verrez le résultat complet.

scroll top