Como faço para listar os itens de meus modelos de Django?

votos
2

Estou trabalhando com o exemplo django Publisher, eu quero listar todos os editores no db via meu modelo list_publisher.html, meu modelo parece;

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

mas quando eu executo http://127.0.0.1:8000/list_publisher/ o modelo apenas imprime o título da página com nenhum erro! O que estou fazendo de errado?

Publicado 08/11/2008 em 09:37
fonte usuário
Em outras línguas...                            


2 respostas

votos
3

Algumas sugestões:

  • verificar se o seu base_site.html não definir uma {% block content %}{% endblock %}seção para ser refinar por seu meu list_publisher.html
  • verificar a cardinalidade de sua lista: {%regroup publisher by name as pub_list %}{{ pub_list|length }}. Que deve pelo menos mostrar o comprimento da sua lista. Se é é '0' ... você sabe por que ele não exibe nada
  • verificar se a sua lista é de fato classificadas por nome antes de usar reagrupar, ou usar um {% regroup publisher|dictsort:"name" by name as pub_list %}para ter certeza

Se o comprimento é '0', você tem que ter certeza publisher é definida (foi inicializada a partir do banco de dados), e classificadas de forma adequada.

Em outras palavras, você vê em qualquer lugar (em seu modelo ou nos modelos definidos):

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

?
(mais uma vez, a ordem por nome é importante, para garantir a sua tag reagrupar funciona corretamente)

Respondeu 08/11/2008 em 09:53
fonte usuário

votos
0

Boa resposta por VonC.

Uma maneira rápida e suja de olhar para pub_list é para ficar [`pub_list`]no seu modelo. Eu colocá-lo entre colchetes no caso, é vazio. BTW, você pode obter algo que se parece [,,,,,]. Isso ocorre porque referências de objeto são embrulhados em <> e seu navegador vai WTF? Basta fazer uma exibição da fonte e você vai ver o resultado completo.

Respondeu 08/11/2008 em 18:38
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more