我有类似这样的设置:
class CategoryPage (webapp.RequestHandler):
def get(self):
** DO SOMETHING HERE **
def post(self):
** DO SOMETHING HERE **
** RENDER THE SAME AS get(self)
问题是,在我处理发布的数据后,我如何能够显示与get(self)函数相同的信息?
答案 0 :(得分:3)
正如其他人所说,重定向确实有一些优势,但这是一种“沉重”的方法。作为替代方案,可以考虑将渲染部分重构为单独的辅助方法def _Render(self):
,并通过调用get
来结束post
和self.Render()
方法。
答案 1 :(得分:1)
调用self.redirect(url)将用户重定向回GET上的同一页面。这样,如果表单刷新,他们就不会意外地重新提交表单。
答案 2 :(得分:0)
create_object(request, form_class=FormClass,
post_save_redirect=reverse('-get-url-handler-',
kwargs=dict(key='%(key)s')))
我在通用视图中使用上面的django快捷方式,您可以在其中指定保存后重定向,在您的情况下获取。 此代码段中还有更多示例。 顺便说一句,我假设您正在使用django(帮助器或补丁)与app引擎,基于问题的标题。 如果您正在使用应用引擎补丁,请查看“myapp”应用示例中的views.py,add_person处理程序会执行您要查找的内容。
答案 3 :(得分:0)
这通常不是一个好主意,因为它会引起混乱。你应该真正做你想做的事情,然后将它们重定向到get方法。
答案 4 :(得分:0)
实际上,你的代码不是Django,而是webapp(谷歌的迷你“框架”)。请阅读Django文档:http://docs.djangoproject.com/
Django的通用视图仅适用于app-engine-patch。助手不支持他们。您可以查看app-engine-patch示例项目,以了解有关App Engine上Django的更多信息:http://code.google.com/p/app-engine-patch/