具有多个参数问题的简单Django验证

时间:2010-08-07 23:01:29

标签: django validation parameters

我和Django玩了几天,偶然发现了以下问题。我有以下型号:

Employee = (id, employeeName)
Project = (id, projectName)
Assignment = (fk_employee, fk_project, from_date, to_date)

我想要做的是创建一个不允许赋值周期重叠的验证器。该算法非常简单,但我不知道如何使用验证器正确设置它。

我认为有类似的东西:

class Assignment(models.Model):
    ...
    from_date = models.DateField(
        validators=[DateInRangeValidator(%theFromDateValue%, %aReferenceToTheEmployee%)])
    to_date = models.DateField(
        validators=[DateInRangeValidator(%theToDateValue%, %aReferenceToTheEmployee%)])

def DateInRangeValidator(dateValue, employee):
    ...
顺便说一下,我写了这些%theDateValue%和%aReferenceToTheEmployee%,因为我不知道如何发送这些参数。它会是'自我','from_date'还是其他什么?

那么,我接近解决方案了吗?提前致谢! :)

1 个答案:

答案 0 :(得分:0)

您需要访问模型的多个字段,这是模型验证而不是字段验证。

因此,您可以考虑覆盖clean类的Assignment方法。

Django document的这一部分可能对您有所帮助。