Django已经在数据库层面实现了通用的约束,如主/外键和唯一性(针对单个字段或组合)。对于更具体的约束条件,最好将它们放在Django的model validation methods中。这样,您可以利用Django的特性,例如模型继承和模型表单,而无需在每个继承的模型或表单处理程序中重写约束检查。您的验证方法的性能将与您设置的一样好。事实上,有些情况下您不必访问数据库,因此性能可能比在数据库层面实现相同限制要好。例如,如果您需要检查要保存的对象中某些模型字段值的组合(而不是针对其他已保存对象进行检查),则无需访问数据库,只需在Python对象级别快速执行检查即可。