2

私はこの2つのクラスを持っています:

class Person(db.Model):
    person_name = db.StringProperty(required = True)
    #gender = db.StringProperty(required = True)
    nacionality = db.StringProperty(required = True)
    marital_status = db.StringProperty(required = True)
    profession = db.StringProperty(required = True)
    SSN = db.IntegerProperty(required = True)
    driver_license = db.IntegerProperty(required = True)
    address = db.PostalAddressProperty(required = True)

class ContractingParty(db.Model):
    person = db.ReferenceProperty(Person, required=True, collection_name="party_to_contracts")
    contract = db.ReferenceProperty(Contract, required=True)
    condition = db.StringProperty()

ContractingParty エンティティのクエリを jinja2 テンプレートに渡したいと考えています。次に、 を使用してfor loop、 Person エンティティから本当に必要なデータにアクセスしたいと思います。契約当事者のクエリが jinja2 に渡されています (テストすると、次のように表示されます: [<main.ContractingParty object at 0x0492D770>])。しかし、for loopベローが機能せずfor loop、ブラウザーに情報が表示されません。どうすれば修正できますか?

{% for party in parties %}
     <li> {{party.person.person_name}} </li>
{% endfor %}
4

1 に答える 1

5

for ループ構造を間違えたようです。コロン文字は省略しなければなりません:

{% for party in parties %}

テンプレートに渡されたオブジェクトを実際にレンダリングするには、コード全体を変更する必要があります。ここで Python コードを実行することはできません。Jinja2 構文に従う必要があります。

{% for party in parties %}
    <li>{{ party.person.profession}}</li>
    ...
{% endfor %}

いくつかの割り当てを使用する場合は、Jinja のタグを設定します。

{% set person = party.person %}

私はあなたがアイデアを持っていることを願っています、ここにもっと明確なリンクがあります

于 2012-08-09T13:22:41.273 に答える