1

値のリストを格納するために使用する MongoDB コレクションに「affects」フィールドがあります。次のようになります。

{
    "_id" : ObjectId("51dc89712ef6af45b0a5f286"),
    "affects" : [
        "GS",
        "WEB",
        "DB",
        "CB",
        "ALL",
        "OTHER"
    ],
}

そしてテンプレート(htmlページ)でこれを行います:

{% for change in changes %}
{{ change._id }}
{{ change.affects }}
{% endfor %}

これは、フィールドに値が 1 つしかない場合に完全に機能します。たとえば、_id は私の HTML ページで次のように出力されます。

51dc89712ef6af45b0a5f286

ただし、複数の値がある場合、出力は次のようになります。

[u'GS', u'WEB', u'DB', u'CB', u'ALL', u'OTHER']

jinja2 で値のリストを繰り返し処理し、括弧、引用符、および u なしでそれらを印刷する方法はありますか?

ありがとうございました。

4

2 に答える 2

4

おそらくJinjaでネストされたループが必要です。これを試してください:

{% for change in changes %}
    {{ change._id }}
    {% for affect in change.affects %} 
        {{ affect }}
    {% endfor %}
{% endfor %}
于 2013-07-10T15:59:50.800 に答える
1

私は似たような問題を抱えていました、私の修正...フラスコapp.py

@app.route('/mongo', methods=['GET', 'POST'])
def mongo():

    # connect to database
    db = client.blog

    # specify the collections name
    posts = db.posts

    # convert the mongodb object to a list
    data = list(posts.find())

    return render_template('mongo_index.html', blog_info=data)

次に、jinja テンプレートは次のようになります... mongo_index.hmtl

{% for i in blog_info %}
    {{ i['url'] }}
    {{ i['post'] }}
{% endfor %}

mongodb から返された初期オブジェクトは次のようになります...

[{u'category': u'python', u'status': u'published', u'title': u'working with python', u'url': u'working-with-python', u'date': u'April 2012', u'post': u'some blog post...', u'_id': ObjectId('553b719efec0c5546ed01dab')}]

理解するのにしばらく時間がかかりました。リストのように見えても、実際にはリストであるとは限りません。:)

于 2015-04-26T12:23:21.243 に答える