Python Can';无法获取具有多对多关系的应用程序引擎模型的计数
我想获得单个用户的事件计数 我的模型:Python Can';无法获取具有多对多关系的应用程序引擎模型的计数,python,html,google-app-engine,jinja2,Python,Html,Google App Engine,Jinja2,我想获得单个用户的事件计数 我的模型: class User(db.Model): name = db.StringProperty(required = True) pw_hash = db.StringProperty(required = True) email = db.StringProperty(required = True) class PlaceModel(db.Model): place_name = db.StringProperty(re
class User(db.Model):
name = db.StringProperty(required = True)
pw_hash = db.StringProperty(required = True)
email = db.StringProperty(required = True)
class PlaceModel(db.Model):
place_name = db.StringProperty(required = True)
place_lat = db.StringProperty(required = True)
place_long = db.StringProperty(required = True)
def render(self):
return render_str("placemodel.html", p = self)
class EventModel(db.Model):
event_place = db.ReferenceProperty(PlaceModel)
event_people = db.ReferenceProperty(User)
event_name = db.StringProperty(required = True)
event_time = db.StringProperty(required = True)
def render(self):
return render_str("eventmodel.html", e = self)
python:
class MainPage(Handler): #render all userevents
def get(self):
email = self.session.get('foo')
user = User.all().filter("email", email).get()
userevents = EventModel.all().filter("event_people =", user).get()
self.render("mainpage.html", userevents = userevents)
html:
{%if userevents.count()==0%}
暂时没有活动
{%else%}
{userevents%中事件的%s}
{{event.event_name}
{{event.event_time}
{%endfor%}
{%endif%}
当我运行这个程序时,我得到一个错误,说EventModel对象没有属性计数。如何获得与用户匹配的EventModel实例数?只需使用
userevents.count
即可获得用户事件数。通过在EventModel.all()
查询末尾使用.get()
即可通过获取第一个值来解析查询。这意味着userevents
不是带有count()
方法的查询,而是实际的单个EventModel实例。删除.get()
我对Jinja不是很了解,但是如果它像Django的模板,那么你需要删除()
,只留下userevents.count
Jinja需要()。如果我删除它,我会得到“'EventModel'对象不可编辑”
{%if userevents.count() == 0%}
<div>no events for now</div>
{% else %}
{% for event in userevents %}
{{event.event_name}}
{{event.event_time}}
{% endfor %}
{% endif %}