4

空の文字列ではなく、コロンをダッシュ​​にスラッグ化してほしい。私はslugify(self.name.replace(":", "-"))私のsave()方法に何かを入れることができると思いますが、それはまったくDRYではありません(私は思います)。

.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))

これは良い考えではないようです。正規表現でそれを行うにはどうすればよいですか?

  1. 正規表現でそれを行うにはどうすればよいですか?
  2. このオーバーライドを django パッケージ内で行うのではなく、プロジェクトに関連付けるにはどうすればよいですか?
4

1 に答える 1

2

必要な変更を加えて、プロジェクト内にカスタムslugify関数を実装します。

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

save()モデルのメソッドでこの関数を使用できます。slugifyこれにより、他の人がDjango が実装した方法で動作することを期待するため、コードを「魔法」から解放します。

于 2013-06-01T22:16:46.897 に答える