首页 > 解决方案 > url {% url employees:check_matricule %} 没有在 forms.py 中运行

问题描述

我想执行 url"{% url employees:check_matricule %}" 到表单 .py 中的 data-url 属性,但结果是 "404 page not found"

class EmployeForm(forms.ModelForm):
    matricule = forms.CharField(widget=forms.TextInput(
        attrs={
            'class': 'form-control',
            'placeholder': 'Matricule1',
            'onkeyup': 'check_matricule(this);return false;',
            'data-url': '{% url employes:check_matricule %}',
        }
    ))

标签: pythondjangourldata-uri

解决方案


您不能在{% url %}此处使用标签 - 它不被视为 Django 模板。

您还可以使用reverse和反转 URL reverse_lazy。在您的情况下,您需要,reverse_lazy因为如果在加载 URL 之前导入表单,您不希望出现错误。

from django.urls import reverse_lazy

class EmployeForm(forms.ModelForm):
    matricule = forms.CharField(widget=forms.TextInput(
        attrs={
            'class': 'form-control',
            'placeholder': 'Matricule1',
            'onkeyup': 'check_matricule(this);return false;',
            'data-url': reverse_lazy('employes:check_matricule'),
        }
    ))

推荐阅读