繁体   English   中英

Django模型字段默认来自模型方法

[英]Django model field default from model method

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

我怎样才能做到这一点 ?

当我尝试这个代码

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:名称'self'未定义。

如果我删除'self'我得到'create_id'需要1个参数。

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

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)

我最终做到了这一点:(从两者中移除自我)

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)

它工作正常,但我不确定这是最佳还是正确的方式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM