0

私はdjangoアプリに部分的なn回を含めたいと思います(私はdjangoを初めて/学習しています)。私はレールの経験が豊富で、単純に次のように記述します。

 <% 3.times do %>
    render 'feeds/feature'
 <% end %>

ジャンゴで似たようなことをする方法を知りたいです。これが私がやろうと思ったことです:

 {% i = 1%}
 {% for i =< 9 %}
   {% include 'feeds/feature.html'%}
   {% i += 1%}
 {% end %}

ただし、これは機能しません - テンプレート構文エラーが発生します 無効なブロック タグ: 'i'、予期される 'endblock'

Railsで行うように、pythonをdjangoページに埋め込むことはできますか? さらに重要なことに、django に feature.html ページを n 回 (この場合は 9 回) 含めるにはどうすればよいでしょうか?

4

2 に答える 2

2

ビューから範囲をコンテキストに入れるだけで、次のようになります。

ビューで:

render_to_response('foo.html', {..., 'range': range(9), ...}, ...)

テンプレートでは:

{% for i in range %}
    {% include 'feeds/feature.html'%}
{% endfor %}

また、次のようなこともできます。

{% for i in "123456789" %}
    {% include 'feeds/feature.html'%}
{% endfor %}

はい、とても醜いです。

または、テンプレート タグを定義することもできます。

スニペット 1

スニペット 2

于 2012-10-29T14:44:45.880 に答える
0

おそらく私は何かが欠けているのかもしれませんが、このようにそれが必要になる状況を想像することはできません. データベースからの機能リストがあり、それらの特定の量を表示したい場合は、次の方法でこれを行うことができます。

{% for feature in feature_list|slice:":3" %}
    {% include "template.html" %}
{% endfor %}

または、単純に 3 つの include を下に記述します。しかし、私が言ったように、これは一般的なプログラミング パターンではなく、より良い解決策がある可能性があります。

于 2012-10-29T14:57:29.327 に答える