我想自己做类似的事情,发现Django的模型验证为执行提供了便利:
from django.db import modelsfrom django.core.exceptions import ValidationErrordef validate_only_one_instance(obj): model = obj.__class__ if (model.objects.count() > 0 and obj.id != model.objects.get().id): raise ValidationError("Can only create 1 %s instance" % model.__name__)class Example(models.Model): def clean(self): validate_only_one_instance(self)这不仅会阻止创建新实例,而且Django管理员界面实际上会报告创建失败,其原因是“只能创建1个实例实例”(而文档中的早期返回方法并未说明为什么保存无效)。



