我有一个类别模型,它本身有一个外来项,可以有空值。
我在网站上找到了一些局部解决方案,但不是很好,也没有涵盖我的所有情况。另一件事,我在模型上做了清理,因为我在管理中有类别,所以我无法控制窗体或视图。
现在我在“name\uu iexact”上出现了一个错误,我不明白为什么,因为“name==self.name”可以工作。
"NameError: name '_' is not defined"
class Category(models.Model):
name = models.CharField(max_length=255)
parent = models.ForeignKey('self', blank=True, null=True, verbose_name='parent category')
description = models.TextField()
def __str__(self):
return self.name
def clean(self):
cleaned_data = super().clean()
if not self.parent:
exists = self.__class__.objects.filter(~Q(pk=self.pk), name__iexact=self.name).exists()
if exists:
raise ValidationError(_('Duplicate Category Name with No Parent'), code='duplicate_no_parent')
if self.name.lower() == self.parent.name.lower():
raise ValidationError(_('Category Name the same as Parent Category Name'), code='duplicate_as_parent')
return cleaned_data
name\uu iexact错误:
Exception Type: NameError
Exception Value:
name '_' is not defined
File "D:\DevEnv\PythonEnv\Django\lib\site-packages\django\core\handlers\exception.py", line 41, in inner
response = get_response(request)
File "D:\DevEnv\PythonEnv\Django\lib\site-packages\django\core\handlers\base.py", line 187, in _get_response
response = self.process_exception_by_middleware(e, request)
File "D:\DevEnv\PythonEnv\Django\lib\site-packages\django\core\handlers\base.py", line 185, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "D:\DevEnv\PythonEnv\Django\lib\site-packages\django\contrib\admin\options.py", line 551, in wrapper
return self.admin_site.admin_view(view)(*args, **kwargs)
File "D:\DevEnv\PythonEnv\Django\lib\site-packages\django\utils\decorators.py", line 149, in _wrapped_view
response = view_func(request, *args, **kwargs)
File "D:\DevEnv\PythonEnv\Django\lib\site-packages\django\views\decorators\cache.py", line 57, in _wrapped_view_func
response = view_func(request, *args, **kwargs)
File "D:\DevEnv\PythonEnv\Django\lib\site-packages\django\contrib\admin\sites.py", line 224, in inner
return view(request, *args, **kwargs)
File "D:\DevEnv\PythonEnv\Django\lib\site-packages\django\contrib\admin\options.py", line 1508, in add_view
return self.changeform_view(request, None, form_url, extra_context)
File "D:\DevEnv\PythonEnv\Django\lib\site-packages\django\utils\decorators.py", line 67, in _wrapper
return bound_func(*args, **kwargs)
File "D:\DevEnv\PythonEnv\Django\lib\site-packages\django\utils\decorators.py", line 149, in _wrapped_view
response = view_func(request, *args, **kwargs)
File "D:\DevEnv\PythonEnv\Django\lib\site-packages\django\utils\decorators.py", line 63, in bound_func
return func.__get__(self, type(self))(*args2, **kwargs2)
File "D:\DevEnv\PythonEnv\Django\lib\site-packages\django\contrib\admin\options.py", line 1408, in changeform_view
return self._changeform_view(request, object_id, form_url, extra_context)
File "D:\DevEnv\PythonEnv\Django\lib\site-packages\django\contrib\admin\options.py", line 1440, in _changeform_view
if form.is_valid():
File "D:\DevEnv\PythonEnv\Django\lib\site-packages\django\forms\forms.py", line 183, in is_valid
return self.is_bound and not self.errors
File "D:\DevEnv\PythonEnv\Django\lib\site-packages\django\forms\forms.py", line 175, in errors
self.full_clean()
File "D:\DevEnv\PythonEnv\Django\lib\site-packages\django\forms\forms.py", line 386, in full_clean
self._post_clean()
File "D:\DevEnv\PythonEnv\Django\lib\site-packages\django\forms\models.py", line 408, in _post_clean
self.instance.full_clean(exclude=exclude, validate_unique=False)
File "D:\DevEnv\PythonEnv\Django\lib\site-packages\django\db\models\base.py", line 1234, in full_clean
self.clean()
File "D:\DevProj\Learn\Django\ph_work\categories\models.py", line 21, in clean
raise ValidationError(_('Duplicate Category Name with No Parent'), code='duplicate_no_parent')
NameError: name '_' is not defined