【发布时间】:2014-04-09 11:39:24
【问题描述】:
:::views.py:::
class userdetailsView(FormView):
form_class = userdetailsViewForm
template_name = "customer/user.html"
def form_valid(self, form):
import os
fir = self.request.POST['employee_id']
sec = self.request.POST['name']
thi = self.request.POST['email']
fou = self.request.POST['address']
yo ="&&".join([fir,sec,thi,fou])
print 'Encrypted string:', yo
return render(self.request, userdetailsView.template_name, {'result': yo , 'form': form})
:::forms.py:::
from django import forms
class userdetailsForm(forms.Form):
employee_id = forms.IntegerField(min_value = 1,max_value = 999, widget=forms.TextInput(attrs={'class':'form-control', 'placeholder': 'employee id'}))
name = forms.CharField(max_length = 10, widget=forms.TextInput(attrs={'class':'form-control', 'placeholder': 'name'}))
email = forms.EmailField(max_length = 25, widget=forms.TextInput(attrs={'class':'form-control', 'placeholder': 'email'}))
address = forms.CharField(max_length = 50, widget=forms.TextInput(attrs={'class':'form-control', 'placeholder': 'address'}))
:::user.html:::
{% block body %}
<div class='col-md-6'>
<form role="form" method='POST'>
{% csrf_token %}
{{ form.non_field_errors }}
<div class="form-group">
<label for="id_employee_id">{{form.employee_id.label}}</label>
{{ form.employee_id.errors }}{{form.employee_id}}
<div class="form-group">
<label for="id_name">{{form.name.label}}</label>
{{ form.name.errors }}{{form.name}}
</div>
<div class="form-group">
<label for="id_email">{{form.email.label}}</label>
{{ form.email.errors }}{{form.email}}
</div>
<div class="form-group">
<label for="id_address">{{form.address.label}}</label>
{{ form.address.errors}}{{form.address}}
</div>
<div class="form-group">
<button type="submit" class="btn btn-default">Submit</button>
</div>
</form>
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title"><strong>user encrypted data</strong></h3>
</div>
<div class="well well-lg" >
{{ result }}
</div>
{% endblock %}
不要使用加密算法,因为我还没有编写它,现在我只是加入值并将其打印在一个盒子里。 我面临的问题是,如果我现在在各自的员工 ID、姓名、电子邮件、地址中插入 999、asa、a@gmail.com、82a...它正在获取并在框中打印值.. 但是,如果我在employee_id(或任何4个字段中的任何错误输入)表单中插入错误的输入,如9999: 它在页面中显示此错误::
ValueError at /device/userdetail/
The view devices.views.userdetailFormView didn't return an HttpResponse object
在终端显示以下错误::
<ul class="errorlist"><li>employee_id<ul class="errorlist"><li>Ensure this value is less than or equal to 999.</li></ul></li></ul>
**我想在模板页面(除了输入框之外)本身打印错误,以便用户在输入不正确的数据时知道要插入和正确插入的内容。
【问题讨论】:
-
这不是您的完整代码。您在某处覆盖了另一种方法,该方法未能返回响应(并将该数据打印到控制台)。无论如何,你不应该在
form_valid中调用render,这不是它的用途。而且,正如我之前告诉过你的,你应该让你的变量更具描述性。 -
与其做出愚蠢的抱怨,不如阅读并理解我的评论:您的错误是由于您未显示的一些代码而发生的。请张贴。
-
哪个代码我没有显示??请说明...
-
userdetailsView的其余部分,即 a) 打印该表单错误和 b) 未能返回响应的部分。 -
可以通过在代码中发布答案来帮助我...??
标签: django python-2.7 django-forms django-templates django-views