为了账号安全,请及时绑定邮箱和手机立即绑定

Django,如何覆盖slugify函数

Django,如何覆盖slugify函数

手掌心 2021-03-15 12:09:24
我希望我的冒号变成破折号而不是空字符串。我想我可以slugify(self.name.replace(":", "-"))在我的save()方法中添加一些类似的东西,但是那根本不是DRY(我认为)。我也可以将该.replace()操作直接添加到django.utils.text.slugifydef 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包中进行呢?
查看完整描述

1 回答

?
SMILET

TA贡献1796条经验 获得超4个赞

我将slugify在您的项目中实现所需的更改的自定义功能:


def myslugify(value):

    return slugify(value.replace(":", "-"))

您可以在save()模型的方法中使用此功能。这可以使您的代码免受“魔术”的困扰slugify,就像其他人期望的那样以Django实现的方式工作。


查看完整回答
反对 回复 2021-03-29
  • 1 回答
  • 0 关注
  • 169 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信