使用日历应用,并希望每个事件模型实例都填写{allday | start,end}字段之一。也就是说,输入的是allday字段,或者是start + end字段,但不是两者都是。
如何对此进行建模并使其在管理应用中正常运行?我想要一个小组中的一个。
答案 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()