Взаимодействие ReferenceProperty с механизмом приложений Google
Я пытаюсь связать свои модели с помощью ReferenceProperty, но мне не повезло. У меня есть 3 уровня: группа, тема, затем плюсы и минусы. Как и в группе домов много тем, и внутри каждой темы может быть много плюсов и минусов.
Я могу хранить новые группы хорошо, но у меня нет никакой идеи, как хранить темы под этими группами. Я хочу создать ссылку со страницы со ссылкой "Новая тема" под каждой группой, которая переводит их в простую форму (1 поле на данный момент). Очевидно, что URL должен иметь какую-то ссылку на идентификатор группы или что-то в этом роде.
Вот мои модели:
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>