我使用 django-reversion 来控制模型的更改,但是模型清理方法有问题。
例如,我的模型如下所示:
class Document(models.Model):
name = models.CharField(max_length=255, blank=True, null=True)
client = models.ForeignKey(Client, on_delete=models.CASCADE)
template = models.ForeignKey(Template, on_delete=models.CASCADE)
def clean(self):
if self.template.only_one and (Document.objects.filter(client=self.client, template=self.template).count() > 0):
raise ValidationError('Test')
我在 admin.py 中注册了这个模型:
@admin.register(Document)
class DocumentReversion(VersionAdmin):
pass
现在我在管理部分中为 Document 创建一条记录,引用该字段所在的only_one
模板True
。如果我删除并检索此记录,则会触发 ValidationError。为什么?因为我已经删除了唯一可用的记录。非常好奇...