Python 验证并保存在django字段中

Python 验证并保存在django字段中,python,django,validation,Python,Django,Validation,我编写了一个函数,该函数接受字符串作为输入,并对其执行一些验证任务,还更改了值 def validate(str): # do validation. If any error, raise Validation error # modify value of str return str 我想将此函数用作某些django模型字段的验证器。我知道怎么做。我的问题是,除了验证之外,我还希望修改后的值(即函数的返回值)保存在字段中。models.py模块不适合这样做,因为输

我编写了一个函数,该函数接受字符串作为输入,并对其执行一些验证任务,还更改了值

def validate(str):
    # do validation. If any error, raise Validation error
    # modify value of str
    return str

我想将此函数用作某些django模型字段的验证器。我知道怎么做。我的问题是,除了验证之外,我还希望修改后的值(即函数的返回值)保存在字段中。

models.py模块不适合这样做,因为输入验证通常以表单形式进行。但您仍然可以在Model.save()方法中执行此操作:

# models.py

def validate(str):
    # do validation. If any error, raise Validation error
    # modify value of str
    return str


class YourModel(models.Model):
    ...
    field_to_validate = models.CharField(max_length=100)
    ...

    def save(self, **kwargs):
        try:
            self.field_to_validate = validate(self.field_to_validate)
        except YourValidationError:
            self.field_to_validate = ''
        super(YourModel, self).save(**kwargs)

您可以按如下方式分配模型值:行=实验室(ip=IPpool[i])行。pingstatus=ispingable(IPpool[i])此处实验室是模型。第一行是实例化,第二行是将函数返回值分配给模型列。ispingable是这里的函数。这就是您要找的吗?我想在djangoin models.py文件中找到它?是的,在django fields django models.py文件中,我们将声明字段数据类型、长度,它是主键还是默认值。那么您想将函数的返回值作为模型字段的默认值吗?你能举个例子吗?