在Django的字段中添加额外的约束 [英] Adding extra constraints into fields in Django

查看:279
本文介绍了在Django的字段中添加额外的约束的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

虽然子类化 db.models.Model ,但有时候添加额外的检查/约束是至关重要的。



我有一个事件模型与 start_date end_date 。 / p>

我想在字段或模型中添加验证,以便 end_date> start_date



有多少可能的方法?



至少我知道这可以在 models.Model 之外在 ModelForm 验证中。



但是如何附加到字段和 models.Model

解决方案在您的型号的保存方法中执行

  def save (self,* args,** kwargs):
if(self.end_date> self.start_date):
super(Foo,self).save(* args,** kwargs)
else:
raise异常,end_date应该大于start_date


While subclassing db.models.Model, sometimes it's essential to add extra checks/constraints.

E.g. I have an Event model with start_date and end_date.

I want to add validation into the fields or the model so that end_date > start_date.

How many possible ways to do this?

At least I know this can be done outside the models.Model inside the ModelForm validation.

But how to attach to the fields and the models.Model?

解决方案

Do it inside your save method of your model:

def save(self, *args, **kwargs):
    if(self.end_date > self.start_date):
        super(Foo, self).save(*args, **kwargs)
    else:
        raise Exception, "end_date should be greater than start_date" 

这篇关于在Django的字段中添加额外的约束的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆