Django:直接发布到Django驱动的表单?

时间:2011-03-11 15:39:41

标签: django django-forms

我有一个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子域中)并且数据预先填充并显示相关的错误消息,那么理想的是,但我不知道这是否真的可能。

请有人建议吗?

2 个答案:

答案 0 :(得分:0)

你说帖子来自不同的网站?假设我有包含视图的site1和包含html表单的site2。我不认为可以从site1的视图中转到site2,除非你调用重定向,在这种情况下你会失去对各种验证响应的访问权限,比如表单错误等,除非你找到一种方法将它们全部通过查询字符串。如果这样做,您可以在site2的一侧创建一个处理程序,它将接收和解析来自site1的响应。我不确定这是否适用于你的情况,因为你说它只是静态的html。

答案 1 :(得分:0)

回答我自己的问题:没问题 - 在测试中,这一切都在Django中正常工作。

失败的响应重定向到Django子域上的表单,并预先填充错误。我心脏 Django!