33

Django テンプレートで空のクエリ セットを確認する方法はありますか? 以下の例では、メモがある場合にのみ NOTES ヘッダーを表示したいと考えています。

「for」の中に {% empty %} を入れると、空のタグの中にあるものは何でも表示されるので、それが空であることを認識します。

クエリを 2 回実行する必要のないものを期待しています。

{% if notes - want something here that works %}
     NOTES:
     {% for note in notes %}
         {{note.text}}  
     {% endfor  %}
{% endif  %}

明確化: 上記の例の「if notes」は機能しません。空のクエリ セットでもヘッダーが表示されます。

これはビューの簡略化されたバージョンです

sql = "select * from app_notes, app_trips where"
notes = trip_notes.objects.raw(sql,(user_id,))

return render_to_response(template, {"notes":notes},context_instance=RequestContext(request))  

編集: ビューの選択は、複数のテーブルから選択します。

4

8 に答える 8

36

試してみてください{% if notes.all %}。わたしにはできる。

于 2013-10-01T09:16:33.577 に答える
6

ビューで、notesが空かどうかを確認します。そうであれば、None代わりに渡します:

{"notes": None}

テンプレートでは{% if notes %}、通常どおり使用します。

于 2013-07-02T21:19:46.877 に答える
4

どうですか:

{% if notes != None %}
    {% if notes %}
        NOTES:
        {% for note in notes %}
            {{ note.text }}  
        {% endfor  %}
    {% endif %}
{% else %}
    NO NOTES AT ALL
{% endif %}
于 2013-07-02T20:58:02.837 に答える