Powiązania silnika aplikacji Google
Próbuję powiązać moje modele za pomocą ReferenceProperty, ale nie mam ogromnego szczęścia. Mam 3 poziomy: Grupowy, Temat, następnie Zalety i Wady. Podobnie jak w Grupie mieści się wiele tematów, aw każdym temacie może być wiele plusów i minusów.
Jestem w stanie przechowywać nowe grupy w porządku, ale nie mam pojęcia, jak przechowywać tematy pod tymi grupami. Chcę linkować ze strony z linkiem „Nowy temat” pod każdą grupą, co prowadzi do prostego formularza (na razie 1 pole). Oczywiście adres URL będzie musiał mieć jakieś odniesienie do identyfikatora grupy lub czegoś takiego.
Oto moje modele:
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')
I jedna funkcja dla rzeczywistej strony Chcę wyświetlić listę grup, a następnie pod ich tematami:
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))
I wreszcie 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>