【发布时间】:2011-12-22 18:26:07
【问题描述】:
我想重写 GAE djangoforms 文章中的示例,以便在使用高复制数据存储在 Google App Engine 上提交表单(例如更新或添加新条目时)后显示最新。
本文中主要的重复查询是:
query = db.GqlQuery("SELECT * FROM Item ORDER BY name")
我们将翻译成:
query = Item.all().order('name') // datastore request
此查询我想在提交表单后从高复制数据存储中获取最新更新的数据(仅在这些情况下,我假设我可以在提交后重定向到特定的 url,它只使用最新数据的查询和在所有其他情况下,我不会这样做)。
验证存储结果的表单如下:
data = ItemForm(data=self.request.POST)
if data.is_valid():
# Save the data, and redirect to the view page
entity = data.save(commit=False)
entity.added_by = users.get_current_user()
entity.put() // datastore request
从数据存储中获取最新条目以填充表单(用于编辑)的过程如下:
id = int(self.request.get('id'))
item = Item.get(db.Key.from_path('Item', id)) // datastore request
data = ItemForm(data=self.request.POST, instance=item)
那么,如何将实体组/祖先键添加到这些数据存储查询中,以反映表单提交后的最新数据。请注意,在填充表单(用于编辑)和提交表单后,我不希望所有查询都具有最新数据。
谁能帮我提供实用的代码示例?
【问题讨论】:
-
@DanielRoseman 请注意,这不是一个重复的问题(类似,是但不重复),正如您在另一个问题的答案中看到的那样。
-
@moguzalp 是的,我想在提交表单后显示最后编辑/插入的数据。此外,在插入/编辑数据和重新加载表单时,我想确保预先填充了最新版本的数据。
标签: google-app-engine django-forms google-cloud-datastore entity-groups