0

Djangoテンプレートで改行を含むリスト内のすべての要素を表示するにはどうすればよいですか?たとえば、リスト ls = ['bin', 'boot', 'data', 'data2']を使用して、要素を次の形式で表示したいと思います

bin
boot
data
data2

私が試してみました:

'\n'.join(ls)

これにより、スペースを含む各単語が返されます。

b i n b o o t d a t a d a t a 2

私のviews.pyからの関連コード:

   result1 = subprocess.Popen(['ls', '/home/zurelsoft/R'], stdout=subprocess.PIPE).communicate()[0]
        result = ''.join(result1)
        return render_to_response('thanks.html', {'res':result, 'res1':command}, context_instance=RequestContext(request))

テンプレートの対応するセクション:

<td>{{ res }} </td>
4

7 に答える 7

4

関数を使用しsplitlines()て出力を行のリストに分割するようにビューを変更します。

def myview(request):
    result = subprocess.Popen(['ls', '/home/zurelsoft/R'], stdout=subprocess.PIPE).communicate()[0].splitlines()
    return render_to_response('thanks.html', {'res':result, 'res1':command}, context_instance=RequestContext(request))

次に、テンプレートの結合フィルターを使用して、リスト内の各要素をHTMLの改行タグで区切ります<br />

<td>{{ res|join:"<br/>" }}</td>
于 2012-11-19T08:53:14.987 に答える
3

newline (\n):-でjoinを使用できます

'\n'.join(ls);  // This will only work for list of strings.

または、単にaを使用for loopしてリストを反復処理し、各要素を出力します。-

for elem in ls: 
    print elem
于 2012-11-19T08:52:21.063 に答える
2
'\n'.join(ls)

"\n"「改行」を意味する特殊文字です。

于 2012-11-19T08:52:06.633 に答える
2

resがリストの場合、リストをループして、各要素を独自のタグで出力できます。

{% for r in res %}
  <td>{{ r }}</td>
{% endfor %}
于 2012-11-19T09:22:25.280 に答える
0
>>> out=reduce(lambda x, y: x+y+'\n', ls, "" )
>>> print out
a
b
c
d
e

join結果を累積するために呼び出しが減少します。

于 2012-11-19T08:55:53.800 に答える
0

試す:

'\n'.join(ls)

'次の行'で区切られた要素のリストが表示されます。最初の例では、空の記号である''を試しました。

于 2012-11-19T08:57:18.637 に答える
0
for i in ls:
    print "%s"%i

これにより、目的の出力が得られます。

于 2012-11-19T08:59:04.183 に答える