django中models字段的联合限制

.字段联合使用的限制设置:

有这么个需求,现有两个字段,A字段是选择用户是不是vip, B字段是统计用户的vip等级; 要求:

用户不是vip,A选择false,B字段为空; vip,A字段选择true,B字段就必须填用户的vip等级!

B字段可为空,A字段须是true,B字段就必须有值,否则后续查询就必然出错,所以单单使用

字段属相能否为空无法限制.解决:利用对象的save()方法,我们可自定义save,然后再调用父类该

方法之前做个判断,不满足要求就抛出异常,代码如下:(在表类中重写且继承父类)

 

二.代码如下:

def save(self, *args, **kwargs):
    if self.A == True:
        if not self.B:
            raise ValueError("B字段此时必须有值")
    super(Course, self).save(*args, **kwargs)  # 调用真正的save方法

posted @ 2018-11-26 21:19  叶落kiss  阅读(718)  评论(0编辑  收藏  举报