【发布时间】:2010-07-12 19:42:12
【问题描述】:
我的应用程序中的用户注册是分步执行的。提交表单后,会执行一些验证,然后调用 register_prompt 视图。它呈现一个表单,有两个选项 - 'ok' 和 'cancel'。单击确定将运行注册,单击取消应重定向到主页。问题是,无论我选择两者中的哪一个,我都会被重定向到 .../user/registration/function_1_or_2_name 并带有一个空白页面(尽管我在 HttpResponseRedirect 中指定了 url)。我怎样才能让它工作?
def register_prompt(request):
context = RequestContext(request)
return render_to_response('user/data_operations/alert.html', context_instance=context)
在 alert.html 上加载的表单:
<form action="" method="post">
<input type="submit" class="submit" name="submit" onClick="this.form.action='{% url register_new %}'" value="Ok" />
<input type="submit" class="submit" name="submit" onClick="this.form.action='{% url redirect_home %}'" value="Cancel" />
</form>
重定向视图(也许有更好的方法?):
def redirect_home(request):
return HttpResponseRedirect('/')
def register_new(request):
(... registration magic here ...)
return HttpResponseRedirect('/user/registration/complete/')
最后是 url conf:
url(r'^register_new/$', register_new, name="register_new"),
url(r'^redirect_home/$', redirect_home, name="redirect_home"),
url(r'^register_prompt/$', register_prompt, name="register_prompt"),
起初我试图向表单的按钮添加一些抽象值(例如“action=ok”),然后在 register_prompt 中捕获它们,但这完全是一场灾难。
【问题讨论】:
-
当您得到空白页时,您是否收到任何类型的错误?您是否尝试添加一些日志记录以查看您是否在提交表单时将其变为您期望的视图?
-
是的,日志显示没问题。我很确定,这个错误不知何故来自“动作”。
标签: django redirect action django-views