我的自定义验证方法不起作用,为了确保它被调用,我在其中添加了sys.exit()
。表单使用错误完成了保存并忽略了该方法,由于exit()
无效,因此甚至没有被调用:
from django.conf import settings
from django import forms
class Category(MPTTModel):
class Meta:
verbose_name_plural = "Categories"
name = models.CharField(max_length=100)
def clean_name(self):
import sys
sys.exit()
name = self.cleaned_data["name"]
if settings.PK_PLACEHOLDER in name:
raise forms.ValidationError(f"{settings.PK_PLACEHOLDER} "
"is a reserved placeholder!")
return name
那是为什么?