Как мне перечислить предметы в моих моделях Django? - PullRequest
2 голосов
/ 08 ноября 2008

Я работаю с примером django Publisher, я хочу перечислить всех издателей в БД через мой шаблон list_publisher.html, мой шаблон выглядит так:

{% 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 %}

но когда я запускаю "http://127.0.0.1:8000/list_publisher/", шаблон просто печатает заголовок страницы без ошибок! Что я делаю не так?

Ответы [ 2 ]

3 голосов
/ 08 ноября 2008

Несколько предложений:

  • убедитесь, что ваш base_site.html определяет раздел {% block content %}{% endblock %}, который будет уточнен вашим списком my list_publisher.html
  • проверьте количество элементов вашего списка: {%regroup publisher by name as pub_list %}{{ pub_list|length }}. Это должно как минимум отображать длину вашего списка. Если это '0' ... вы знаете, почему он ничего не показывает
  • проверьте, что ваш список действительно отсортирован по имени, прежде чем использовать regroup, или используйте {% regroup publisher|dictsort:"name" by name as pub_list %}, чтобы убедиться,

Если длина равна 0, вы должны убедиться, что издатель определен (был инициализирован из базы данных) и правильно отсортирован.

Другими словами, вы видите где-нибудь (в вашем шаблоне или в определенных шаблонах):

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


(опять же, важен порядок по имени, чтобы обеспечить правильную работу тега перегруппировки)

0 голосов
/ 08 ноября 2008

Хороший ответ от VonC.

Быстрый и грязный способ взглянуть на pub_list - вставить [{{pub_list}}] в ваш шаблон. Я поставил его в квадратные скобки на случай, если он пустой. Кстати, вы можете получить что-то похожее на [,,,,,]. Это потому, что ссылки на объекты обернуты в <> и ваш браузер использует WTF? Просто сделайте View Source, и вы увидите полный результат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...