0
工作,我写了我的模型验证程序是:自定义模型验证程序不上编辑
def validate_is_default(value):
if Wizard.objects.filter(set_as_default=True).count() == 1:
if value is True:
raise ValidationError(_('You can mark only one configuration as default'))
else:
raise ValidationError(_('You have to mark one configuration as default'))
而且我有模型,当我使用它:
class MyModel(models.Model):
name = models.CharField(_('Wizard name'), default='Default', max_length=32, blank=False)
...
set_as_default = models.BooleanField(_('Set as default setup'), default=False, validators=[validate_is_default])
在验证我想检查如果在set_as_default = True的数据库中只有一条记录。当我添加新记录时,这工作正常,但当我尝试编辑一个记录时失败。如何解决这个问题?
我在管理面板中使用这个。我不想改变默认形式,但使用这个验证器以某种方式解决它。可能吗?
“不起作用”不是一个有用的描述。它如何失败? – 2011-05-17 18:15:34
现在我在模型保存中检查set_as_default。如果将其中一个设置为默认值,那么我将此字段更改为false,并将新记录设置为true。 – szaman 2011-05-23 10:18:11