Django CharField To String

Dav*_*idM 4 django tostring django-models

我正在Django中构建一个标记系统,并希望允许显示标记名称中的空格和其他字符,但过滤掉它们并在匹配名称时使用小写等.

为此,我在Tag模型中添加了一个字段,如下所示:

class Tag(models.Model):
    name = models.CharField(max_length=200, unique=True)
    matchname = re.sub("\W+" , "", name.lower())
Run Code Online (Sandbox Code Playgroud)

然而,我遇到了一个问题,CharField不是一个字符串,我不能为我的生活找到如何将其转换为一个!

Dav*_*ebb 7

你正在定义一个class,所以name不是一个字符串,它是一个Django字段.

此外,转换namematchname类级别没有任何意义.你应该在实例上这样做.

您可以在类中添加一个方法来执行此操作:

def get_matchname(self):
    """Returns the match name for a tag"""
    return re.sub("\W+" , "", self.name.lower())
Run Code Online (Sandbox Code Playgroud)