误差

2010-01-13 72 views
0

所有返回Django的形式,内容,误差

我有一个模板页说x.html

我有3个文本在IT领域的域名(VARCHAR2),年龄(INT),学校(VARCHAR2)。

如果用户输入在x.html形式(比如值名称=“一”,年龄=“2”,学校=“A”)的值,并提交它。我需要回到返回相同的值指示错误的x.html。

我的问题是如何返回相同的值x.html。

感谢.....

回答

2

docs

在一个视图处理的形式标准模式如下:

def contact(request): 
    if request.method == 'POST': # If the form has been submitted... 
     form = ContactForm(request.POST) # A form bound to the POST data 
     if form.is_valid(): # All validation rules pass 
      # Process the data in form.cleaned_data 
      # ... 
      return HttpResponseRedirect('/thanks/') # Redirect after POST 
    else: 
     form = ContactForm() # An unbound form 

    return render_to_response('contact.html', { 
     'form': form, 
    }) 
+0

谢谢........................... – Hulk 2010-01-13 19:25:58

0

如果您正在使用Django的形式,它会做验证本身,然后返回你需要的值。 Here您可以阅读关于使用表单以及它们如何验证值的信息。基本上,当你通过一些值形式,它不是有效的,你只要再次渲染网站,但Django会自动地填写领域。不要打扰写你自己的形式,除非你真的,真的需要他们。而在你的例子中,你真的不知道;-)

+0

谢谢................. ................... – Hulk 2010-01-13 19:28:26

0

我不知道你是如何处理你的表单信息。但是,如果您使用Django中内置的表单API,它会为您处理大部分此类问题。有关详细信息,请查看Django Docs for Forms http://docs.djangoproject.com/en/dev/topics/forms/#topics-forms-index

如果您使用表单API并且提交无效,那么Django会为该模板提供表单的绑定副本,并且已经包含用户提供的数据。同样,您必须阅读API的详细信息以了解如何在您的情况下实施它。

+0

感谢........................... – Hulk 2010-01-13 19:27:55

2

只要您将表单对象提供给呈现的模板,Django就会将提交的值写回。例如,在你看来,是这样的:

# handle POST 
form = MyForm(request.POST) 
if form.is_valid(): 
    # do something and redirect 
else: 
    # render the template with the invalid form 
    return render_to_response('mytemplate.html', {'form': form}) 

,并在您的模板,是这样的:

{{ form.myfield.label_tag }} 
{% if form.myfield.errors %} indicate error message/icon here {% endif %} 
{{ form.myfield }} 

注意{{ form.myfield }}将展示基础上,为myfield与先前提交的值的HTML控件查看上面的代码。这将是空白的,当你在响应GET(例如form = MyForm())与空白表单呈现它。

+0

谢谢...................................... – Hulk 2010-01-22 06:20:22

+0

不客气。 :) – ars 2010-01-22 06:54:10