Google app engine 访问原始类之外的实体密钥的正确方法

Google app engine 访问原始类之外的实体密钥的正确方法,google-app-engine,python-2.7,Google App Engine,Python 2.7,我正在用Python编写我的第一个GAE web应用程序。我需要收集大约30个属性并实例化一个客户机对象(我使用的是Model.db)。我想用4种不同的顺序形式来完成这项工作。如果我对每个表单使用单独的页面处理程序,那么提取和引用每个表单上的键或id并将数据放入同一数据实体的最佳方式是什么?如何避免全局变量?不确定是否遵循。。。你可能需要更清楚地解释这个问题 首先,不要使用全局变量 同一模板上可以有4个表单,所有表单都具有相同的处理程序。为每个对象指定一个单独的隐藏属性。或者,根据模板包的不同,

我正在用Python编写我的第一个GAE web应用程序。我需要收集大约30个属性并实例化一个客户机对象(我使用的是Model.db)。我想用4种不同的顺序形式来完成这项工作。如果我对每个表单使用单独的页面处理程序,那么提取和引用每个表单上的键或id并将数据放入同一数据实体的最佳方式是什么?如何避免全局变量?

不确定是否遵循。。。你可能需要更清楚地解释这个问题

首先,不要使用全局变量

同一模板上可以有4个表单,所有表单都具有相同的处理程序。为每个对象指定一个单独的隐藏属性。或者,根据模板包的不同,您应该能够通过ID访问表单

在处理程序中:

entity = MyModel.get_by_key_name('my_key_name') 
if request.method == 'POST':
    if request.POST['hidden_field'] == 'firstform':
        entity['prop_1'] = form.prop_1.data
        ...
    if request.POST['hidden_field'] == 'secondform':
       ...
    ...
    entity.put()
else:
    return <template>
entity=MyModel.get\u by\u key\u name('my\u key\u name'))
如果request.method==“POST”:
if request.POST['hidden_field']=“firstform”:
实体['prop_1']=form.prop_1.data
...
if request.POST['hidden_field']=='secondform':
...
...
实体.put()
其他:
返回

您需要修改上面的语法以适合您的模板pkg。

@gaefan这一点指导非常有用!我在前进。当我在同一个处理程序中发帖时,我已经越过了另一个障碍。我刚刚发布了一个详细说明。