我希望我的冒号被塞进破折号而不是空字符串。我想我可以将slugify(self.name.replace(":", "-"))
这样的东西放到我的save()
方法中,但这根本就不会干(我认为)。
此外,我可以将.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))
这似乎不是一个好主意。我如何使用正则表达式?
答案 0 :(得分:2)
我会在项目中使用所需的更改实现自定义slugify
函数:
def myslugify(value):
return slugify(value.replace(":", "-"))
您可以在模型的save()
方法中使用此功能。这使得您的代码免于“魔术”,因为其他人希望slugify
以Django实现它的方式工作。