Python Django表单验证错误未显示在模板中

Python Django表单验证错误未显示在模板中,python,django,django-forms,Python,Django,Django Forms,我的问题与问题所述完全相同……我无法使表单验证错误正常工作。我将在下面发布我目前正在尝试的内容。请让我知道如何修改我的代码,以使这项工作。目前,我甚至可以用任何名字成功提交表单。所以很明显,我在forms.py中设置的内容甚至不起作用 forms.py class PackingListForm(forms.ModelForm): class Meta: model = PackingList fields = ['Exporter', 'Consigne

我的问题与问题所述完全相同……我无法使表单验证错误正常工作。我将在下面发布我目前正在尝试的内容。请让我知道如何修改我的代码,以使这项工作。目前,我甚至可以用任何名字成功提交表单。所以很明显,我在forms.py中设置的内容甚至不起作用

forms.py

class PackingListForm(forms.ModelForm):
    class Meta:
        model = PackingList
        fields = ['Exporter', 'Consignee', 'Reference_Number', ... ]

    def clean_test_value(self):
        data = self.cleaned_data.get('Exporter')

        if not Exporter == 'Jeff':
            raise forms.ValidationError('ahhhh Error!')
        return data
模板(packlist.html)

回溯

Request Method: POST
Request URL: http://127.0.0.1:8000/create/packing_list

Django Version: 1.11
Python Version: 2.7.10
Installed Applications:
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'Poseidon',
 'crispy_forms',
 'bootstrap_modal_forms']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware']



Traceback:

File "/Library/Python/2.7/site-packages/django/core/handlers/exception.py" in inner
  41.             response = get_response(request)

File "/Library/Python/2.7/site-packages/django/core/handlers/base.py" in _get_response
  187.                 response = self.process_exception_by_middleware(e, request)

File "/Library/Python/2.7/site-packages/django/core/handlers/base.py" in _get_response
  185.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/Library/Python/2.7/site-packages/django/contrib/auth/decorators.py" in _wrapped_view
  23.                 return view_func(request, *args, **kwargs)

File "/Users/andrews/Desktop/WBU2/Poseidon/views.py" in PackingListView
  188.         if form.is_valid():

File "/Library/Python/2.7/site-packages/django/forms/forms.py" in is_valid
  183.         return self.is_bound and not self.errors

File "/Library/Python/2.7/site-packages/django/forms/forms.py" in errors
  175.             self.full_clean()

File "/Library/Python/2.7/site-packages/django/forms/forms.py" in full_clean
  384.         self._clean_fields()

File "/Library/Python/2.7/site-packages/django/forms/forms.py" in _clean_fields
  405.                     value = getattr(self, 'clean_%s' % name)()

File "/Users/andrews/Desktop/WBU2/Poseidon/forms.py" in clean_Exporter
  52.         if not Exporter == 'Greg':

Exception Type: NameError at /create/packing_list
Exception Value: global name 'Exporter' is not defined

由于该字段的名称为
导出器
,因此清理功能应为
clean\u Exporter

class PackingListForm(forms.ModelForm):
    class Meta:
        model = PackingList
        fields = ['Exporter', 'Consignee', 'Reference_Number']

    def clean_Exporter(self):
        data = self.cleaned_data.get('Exporter')

        if data != 'Jeff':
            raise forms.ValidationError('ahhhh Error!')
        return data
class PackingListForm(forms.ModelForm):
类元:
型号=包装清单
字段=[“出口商”、“收货人”、“参考号”]
def清洁_导出器(自身):
data=self.cleanned\u data.get('Exporter'))
如果数据!='杰夫:
raise forms.ValidationError('ahhhh Error!')
返回数据
注意:通常Django模型中字段的名称是用snake_大小写的,而不是PerlCase,因此它应该是:
exporter
,而不是
exporter


验证器应该是
clean\u Exporter
@brunodesshuilliers是的,谢谢您的输入。非常有用。问题已经得到了回答。@GXM100学习阅读回溯和错误消息确实会对您有所帮助。您好,威廉-这很有帮助,但现在我发现在我看来遗漏了一些东西,因为我在提交表单时立即收到一个名称错误,声明“未定义全局名称导出器”。我已经发布了上面的回溯。@GXM100:是的,应该是
非数据==
,非
非导出器==
,因为您没有定义该变量:)@GXM100:您也可以使用
数据!='杰夫
哪个短一点。谢谢!现在一切似乎都在运行…相对容易的事情,但被忽略了,因为我是新手…感谢你的帮助。
Request Method: POST
Request URL: http://127.0.0.1:8000/create/packing_list

Django Version: 1.11
Python Version: 2.7.10
Installed Applications:
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'Poseidon',
 'crispy_forms',
 'bootstrap_modal_forms']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware']



Traceback:

File "/Library/Python/2.7/site-packages/django/core/handlers/exception.py" in inner
  41.             response = get_response(request)

File "/Library/Python/2.7/site-packages/django/core/handlers/base.py" in _get_response
  187.                 response = self.process_exception_by_middleware(e, request)

File "/Library/Python/2.7/site-packages/django/core/handlers/base.py" in _get_response
  185.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/Library/Python/2.7/site-packages/django/contrib/auth/decorators.py" in _wrapped_view
  23.                 return view_func(request, *args, **kwargs)

File "/Users/andrews/Desktop/WBU2/Poseidon/views.py" in PackingListView
  188.         if form.is_valid():

File "/Library/Python/2.7/site-packages/django/forms/forms.py" in is_valid
  183.         return self.is_bound and not self.errors

File "/Library/Python/2.7/site-packages/django/forms/forms.py" in errors
  175.             self.full_clean()

File "/Library/Python/2.7/site-packages/django/forms/forms.py" in full_clean
  384.         self._clean_fields()

File "/Library/Python/2.7/site-packages/django/forms/forms.py" in _clean_fields
  405.                     value = getattr(self, 'clean_%s' % name)()

File "/Users/andrews/Desktop/WBU2/Poseidon/forms.py" in clean_Exporter
  52.         if not Exporter == 'Greg':

Exception Type: NameError at /create/packing_list
Exception Value: global name 'Exporter' is not defined
class PackingListForm(forms.ModelForm):
    class Meta:
        model = PackingList
        fields = ['Exporter', 'Consignee', 'Reference_Number']

    def clean_Exporter(self):
        data = self.cleaned_data.get('Exporter')

        if data != 'Jeff':
            raise forms.ValidationError('ahhhh Error!')
        return data