django - Django表单验证没有函数调用
问题描述
我有以下问题。我有forms.py文件:
@parsleyfy
class FilterWebsitesForm(forms.Form):
domain = forms.RegexField(min_length=3, regex=re.compile("^[a-zA-Z0-9-_., ]+$"), error_messages={'invalid': ("Only these characters are acceptable in a domain name: letters, numbers, hyphens, spaces, commas and dots.")}, required=False, label='', widget=forms.TextInput(attrs={'placeholder': 'domain', 'class': 'text_search padding_both', 'id': 'domain_id'}))
视图.py:
from myapp.forms import FilterWebsitesForm
def websites_display(request):
limit = 100
fwfForm = FilterWebsitesForm()
start = time.clock()
if request.method == 'POST':
fwfForm = FilterWebsitesForm(request.POST or None)
if fwfForm.is_valid():
queries = {}
...
main_display.html
<title>{{ title }}</title>
<script type="text/javascript">
$(document).ready(function(){
$('#button_search').click(function() {
$('#first').show();
$('#records_list').block({ message: null });
});
});
</script>
在 main_display.html 文件中,加载程序会一直显示,直到返回结果。当用户输入正确的字符时,加载程序工作正常。返回结果时消失。
当用户在表单中输入错误的字符时,Regexfield 会显示消息,但也会运行 javascript 函数,这不是我想要的,因为加载程序永远运行。
问题是在显示验证错误消息时,未执行 website_display 函数(limit = 100 处的断点),这就是为什么我无法检查 {% if form.errors %} 来运行 javascript 函数的原因。
我找不到有关此问题的任何信息。谢谢你。
解决方案
您没有提供整个 views.py 函数,但根据您报告的内容,我将首先查看何时会发生什么
if fwfForm.is_valid():
是假的。
你可能需要的——同样,你没有提供,但我知道我犯了这个错误——类似于:
def websites_display(request):
limit = 100
fwfForm = FilterWebsitesForm()
start = time.clock()
if request.method == 'POST':
fwfForm = FilterWebsitesForm(request.POST or None)
if fwfForm.is_valid():
queries = {}
...
else:
context = {'form': fwfForm}
return render(request, 'main_display.html', context)
推荐阅读
- node.js - 为什么节点 js 无法识别 ejs 的结束括号
- ios - react-native ios,如何在低内存情况下从缓存中释放本地图像?
- javascript - 仅按第一个属性删除文档
- c# - 在 MVC 中将选定的值下拉到 Edi
- javascript - 使用 limitTo 过滤器 ng-repeat 第一页和最后一页
- python - 是什么搞砸了我对 scikit 学习模型对象的腌制?
- android - 从 Xamarin 中的 Android 应用投射后控制视频
- excel - Excel:从“最小到最大”到“AZ”的排序标准不一致
- azure - Terraform 从现有 VNET/子网中检索 CIDR/前缀
- libgdx - 触摸演员时如何防止屏幕上的点击事件?(LIBGDX)