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实现它的方式工作