11

我想从模型方法中给出模型字段默认值。

我怎样才能做到这一点 ?

当我尝试这段代码时

Class Person(models.Model):
    def create_id(self):
        return os.urandom(12).encode('hex')

    name = models.CharField(max_length = 255)
    id = models.CharField(max_length = 255,default = self.create_id)

我得到 NameError: name 'self' is not defined。

如果我删除“自我”,我会得到“create_id”需要 1 个参数。

4

2 回答 2

9

您可以像这样定义全局方法:

def create_id():
    return os.urandom(12).encode('hex')

Class Person(models.Model):
   name = models.CharField(max_length = 255)
   id = models.CharField(max_length = 255,default = create_id)
于 2012-08-12T16:02:36.137 回答
5

我最终这样做了:(从两者中删除自我)

Class Person(models.Model):
    def create_id():
        return os.urandom(12).encode('hex')

    name = models.CharField(max_length = 255)
    id = models.CharField(max_length = 255,default = create_id)

它正在工作,但我不确定这是最好的还是正确的方法。

于 2012-08-13T07:32:18.337 回答