【发布时间】:2010-01-26 20:14:55
【问题描述】:
假设我有一个模型:
class Ticket(models.Model):
client = models.ForeignKey(Client)
color = models.CharField(max_length=255)
def clean(self):
self.color = self.client.favorite_color
当我在最新的 Django(15 分钟前的 SVN 的负责人)上运行此程序时,如果我在没有选择 client 的情况下点击保存,我会从我的 clean 方法中收到 DoesNotExist 错误(对于 @987654327 @ 部分)。由于模型需要client 属性,难道不应该在我在clean() 中的自定义验证之前处理这个问题吗?
这是我正在阅读的文档:http://docs.djangoproject.com/en/dev/ref/models/instances/#id1
【问题讨论】:
-
可以在模型上使用 clean 功能吗?我以为它只适用于 ModelForms?
-
@D4V360:OP指的是SVN版本。引入了
clean方法。查看所有模型方法:docs.djangoproject.com/en/dev/ref/models/instances/… -
如果你要拉下 SVN,请从修订版 #12267 拉。在 #12268 中并转发直到他们修复它(我输入了一张票),如果你提出一个 ValidationError('with a string like this which isdocumented'),在 django.forms.models 中会发生一个运行时错误,因为漏洞。 12268 是引入该错误的地方。
-
如果您对 orokusaki 所说的内容感到好奇,请查看 code.djangoproject.com/ticket/12698!
标签: django django-models django-validation