2

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/」を実行すると、テンプレートはエラーなしでページ タイトルを出力します。私は何を間違っていますか?

4

2 に答える 2

3

いくつかの提案:

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

長さが「0」の場合、発行者が定義されている (データベースから初期化されている) こと、および適切にソートされていることを確認する必要があります。

言い換えれば、どこにでも表示されますか (テンプレートまたは定義済みのテンプレート内):

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

?
(ここでも、再グループ化タグが適切に機能するように、名前の順序が重要です)

于 2008-11-08T08:53:36.667 に答える
0

VonCによる良い答え。

pub_list を見る手っ取り早い汚い方法は[{{pub_list}}]、テンプレートに固執することです。空の場合に備えて、角かっこで囲みます。ところで、次のようなものが得られる場合があります[,,,,,]。これは、オブジェクト参照が <> で囲まれていて、ブラウザーが WTF になっているためです。ソースを表示するだけで、完全な結果が表示されます。

于 2008-11-08T17:38:43.597 に答える