【发布时间】:2020-10-15 23:01:10
【问题描述】:
我有以下问题。 我有 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'}))
views.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 文件中,加载器会一直显示,直到返回结果。 当用户输入正确的字符时,加载器工作正常。返回结果时消失。
当用户在表单中输入错误的字符时,Regex 字段会显示消息,但也会运行 javascript 函数,这不是我想要的,因为加载器会永远运行。
问题是在显示验证错误消息时,websites_display 函数没有执行(limit = 100 处的断点),这就是为什么我无法检查 {% if form.errors %} 来运行 javascript 函数的原因。
我找不到有关此问题的任何信息。谢谢。
【问题讨论】:
标签: django forms validation