Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django,如何覆盖slagify函数_Python_Django - Fatal编程技术网

Python Django,如何覆盖slagify函数

Python Django,如何覆盖slagify函数,python,django,Python,Django,我希望我的冒号变成破折号,而不是空字符串。我想我可以在我的save()方法中加入类似于slagify(self.name.replace(“:”,“-”)的东西,但那一点也不枯燥(我想) 我还可以将.replace()操作直接添加到django.utils.text.slugify def slugify(value): value = unicodedata.normalize('NFKD', value).encode('ascii', 'ignore').decode('ascii

我希望我的冒号变成破折号,而不是空字符串。我想我可以在我的
save()
方法中加入类似于
slagify(self.name.replace(“:”,“-”)的东西,但那一点也不枯燥(我想)

我还可以将
.replace()
操作直接添加到
django.utils.text.slugify

def slugify(value):
    value = unicodedata.normalize('NFKD', value).encode('ascii', 'ignore').decode('ascii')
    value = value.replace(":", "-")
    value = re.sub('[^\w\s-]', '', value).strip().lower()
    return mark_safe(re.sub('[-\s]+', '-', value))
这似乎不是个好主意。如何使用正则表达式

  • 如何使用正则表达式
  • 如何将此覆盖绑定到项目,而不是在django包中执行

  • 我将在您的项目中实施定制的
    slagify
    功能,并进行所需的更改:

    def myslugify(value):
        return slugify(value.replace(":", "-"))
    
    您可以在模型的
    save()
    方法中使用此函数。这使您的代码不受“魔法”的影响,因为其他人希望
    slagify
    以Django实现它的方式工作