Djangoモデルのアイテムを一覧表示するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/274529

  •  07-07-2019
  •  | 
  •  

質問

django Publisherの例を使用して、list_publisher.htmlテンプレートを介してdb内のすべてのパブリッシャーを一覧表示したい場合、テンプレートは次のようになります。

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

しかし、<!> quot; http://127.0.0.1:8000/list_publisher/ <!> quot;テンプレートはページタイトルをエラーなしで印刷するだけです!私は何を間違えていますか?

役に立ちましたか?

解決

いくつかの提案:

  • base_site.htmlが{% block content %}{% endblock %}セクションを定義してmy list_publisher.htmlで絞り込むことを確認します
  • リストのカーディナリティを確認します:{%regroup publisher by name as pub_list %}{{ pub_list|length }}。少なくともリストの長さが表示されるはずです。 isが「0」の場合...何も表示されない理由がわかります
  • regroupを使用する前に、リストが実際に名前でソートされていることを確認するか、{% regroup publisher|dictsort:"name" by name as pub_list %}を使用して確認します

長さが「0」の場合、パブリッシャーが定義され(データベースから初期化されている)、適切にソートされていることを確認する必要があります。

つまり、テンプレートまたは定義済みのテンプレートのどこにでも表示されますか:

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


(再度、名前による順序が重要であり、再グループ化タグが適切に機能することを確認します)

他のヒント

VonCによる適切な回答。

pub_listをすばやく簡単に確認するには、テンプレートに[{{pub_list}}]を貼り付けます。空の場合に備えて角括弧で囲みます。ところで、[,,,,,]のようなものが表示される場合があります。これは、オブジェクト参照が<!> lt; <!> gt;でラップされているためです。そしてあなたのブラウザはWTFを行っていますか?ソースを表示するだけで、完全な結果が表示されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top