我有一个Django表单页面,以经典的Django方式设置,以显示GET请求的表单并处理POST请求的表单提交,并返回无效数据的错误。
def create_trial(request):
trial_form = TrialForm()
if request.method == 'POST':
if request.POST['form'] == 'trial_create':
trial_form = TrialForm(request.POST)
if trial_form.is_valid():
# etc etc
return render_to_response(template, {'trial_form': trial_form},
context_instance=RequestContext(request))
现在,我需要创建一个位于不同子域的静态HTML页面,它直接POST到这个Django表单中。
显然,如果所有数据都没问题,那就没关系 - HTML页面只会重定向到Django成功消息。
然而,如果Django表单拒绝某些数据会发生什么?我的用户会看到什么?
如果将它们重定向到Django格式(在Django子域中)并且数据预先填充并显示相关的错误消息,那么理想的是,但我不知道这是否真的可能。
请有人建议吗?
答案 0 :(得分:0)
你说帖子来自不同的网站?假设我有包含视图的site1和包含html表单的site2。我不认为可以从site1的视图中转到site2,除非你调用重定向,在这种情况下你会失去对各种验证响应的访问权限,比如表单错误等,除非你找到一种方法将它们全部通过查询字符串。如果这样做,您可以在site2的一侧创建一个处理程序,它将接收和解析来自site1的响应。我不确定这是否适用于你的情况,因为你说它只是静态的html。
答案 1 :(得分:0)
回答我自己的问题:没问题 - 在测试中,这一切都在Django中正常工作。
失败的响应重定向到Django子域上的表单,并预先填充错误。我心脏 Django!