GAE を使用して Web アプリを作成しようとしていますが、データ構造は Dockets、Projects、および Tasks で構成されています。
各ドケットには複数のプロジェクトがあり、各プロジェクトには複数のタスクが順番に含まれています。ドケット ページでは、ドケットの下にあるすべてのコンテンツを表示する必要があるため、次のようにします。
- プロジェクト 1: タスク a、タスク b、タスク c、....
- プロジェクト 2: タスク a、タスク c、タスク c、....など...
次のコードを使用して、すべてのプロジェクトをリストに表示することができましたが、各プロジェクトの下のタスクを表示するとなるとわかりません。GAE、python、および Web アプリの完全な初心者である私は、検索する用語についても知らず、私の検索はあまり役に立ちませんでした....おそらくここの誰かが助けてくれるでしょう。
class DocketPage(BaseRequestHandler):
_OUTPUT_TYPES = {
'default': ['text/html', 'html'],
}
def get(self):
docket = Docket.get(self.request.get('id'))
docket_name = docket.name
if not docket:
self.error(403)
return
projects_query = Project.all().ancestor(
docket)
projects = projects_query.fetch(10)
for project in projects:
tasks_query = Task.all().ancestor(project)
tasks = tasks_query.fetch(10)
# Choose a template based on the output type
output_name = self.request.get('output')
output_name_list = DocketPage._OUTPUT_TYPES.keys()
if output_name not in output_name_list:
output_name = output_name_list[0]
output_type = DocketPage._OUTPUT_TYPES[output_name]
self.response.headers['Content-Type'] = output_type[0]
self.generate('docket_' + output_name + '.' + output_type[1], {
'docket': docket,
'projects': projects,
'tasks' : tasks,
})
次の方法でコードを変更することで、タスクをテンプレートに表示することができました。ただし、プロジェクトとタスクの数を知ることができないため、これは明らかに役に立ちません。
tasks_query = Task.all().ancestor(projects[0])
tasks = tasks_query.fetch(10)