是否可以在Django中对模型字段进行分组?

时间:2011-06-07 22:50:04

标签: django model

使用日历应用,并希望每个事件模型实例都填写{allday | start,end}字段之一。也就是说,输入的是allday字段,或者是start + end字段,但不是两者都是。

如何对此进行建模并使其在管理应用中正常运行?我想要一个小组中的一个。

1 个答案:

答案 0 :(得分:3)

使用所有3个字段创建模型,并覆盖clean方法(在验证模型时调用)以检查您的条件:

def clean(self):
    if not self.allday: # allday not present
        if not self.start or not self.end: # start and/or end not present
            raise ValidationError('error message...')
    else:
        if self.start or self.end:     # allday present but also start and/or end
            raise ValidationError('error message...')

有关clean的更多信息:Model.clean()