如何正确调用和使用嵌入Python代码的jinja2模板中的变量?

2024-04-20 09:12:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两门课:

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不起作用,我的浏览器中没有显示{}的信息。我怎么能修好它?在

^{pr2}$

Tags: name实体looptruefordbmodelrequired
1条回答
网友
1楼 · 发布于 2024-04-20 09:12:46

似乎在for循环构造中出错,必须省略冒号字符:

{% for party in parties %}

整个代码必须更改为实际呈现传递给模板的对象。这里不能执行Python代码,必须遵守Jinja2语法:

^{pr2}$

如果您想进行一些分配,请使用setJinja的标记:

{% set person = party.person %}

我希望你已经有了想法,这里有一个link和更多的澄清

相关问题 更多 >