【发布时间】:2010-11-15 16:04:05
【问题描述】:
我正在尝试使用 ReferenceProperty 让我的模型相关联,但运气不佳。我有 3 个级别:组、主题、优点和缺点。就像在一个小组中包含许多主题一样,每个主题中可能有许多优点和缺点。
我可以很好地存储新组,但我不知道如何在这些组下存储主题。我想从每个组下方带有“新主题”链接的页面链接,这会将它们带到一个简单的表单(目前为 1 个字段)。显然,URL 需要对组的 id 或其他内容进行某种引用。
这是我的模型:
class Groups(db.Model):
group_user = db.UserProperty()
group_name = db.StringProperty(multiline=True)
group_date = db.DateTimeProperty(auto_now_add=True)
class Topics(db.Model):
topic_user = db.UserProperty()
topic_name = db.StringProperty(multiline=True)
topic_date = db.DateTimeProperty(auto_now_add=True)
topic_group = db.ReferenceProperty(Groups, collection_name='topics')
class Pro(db.Model):
pro_user = db.UserProperty()
pro_content = db.StringProperty(multiline=True)
pro_date = db.IntegerProperty(default=0)
pro_topic = db.ReferenceProperty(Topics, collection_name='pros')
class Con(db.Model):
con_user = db.UserProperty()
con_content = db.StringProperty(multiline=True)
con_date = db.IntegerProperty(default=0)
con_topic = db.ReferenceProperty(Topics, collection_name='cons')
我想在实际页面中显示组列表,然后在其主题下方显示一个功能:
class Summary(webapp.RequestHandler):
def get(self):
groups_query = Groups.all()
groups = groups_query.fetch(1000)
template_values = {
'groups': groups,
}
path = os.path.join(os.path.dirname(__file__), 'summary.html')
self.response.out.write(template.render(path, template_values))
最后是html:
<html>
<body>
<a href="/newgroup">New Group</a>
<br>
{% for group in groups %}
<font size="24">{{ group.group_name|escape }}</font><br> by <b>{{ group.group_user }}</b> at <b>{{ group.group_date }}</b> {{ group.raw_id }}
<br>
<a href="/newtopic?id={{group.key.id}}" >New topice </a>
<br>
<blockquote>
{{ topics.topics_name }}
</blockquote>
{% endfor %}
</body>
</html>
【问题讨论】:
标签: python google-app-engine django-models model django-templates