次のようなモデルがあります。
class Page(ContentBase):
url_slug = models.SlugField()
SlugField のドキュメントによると、slugfields は「数字、文字、アンダースコア、およびハイフン」です。ただし、その仕様外の文字を持つ悪いスラッグを設定できるようです:
page = Page.objects.get(id=872)
page.url_slug = '&*()&*(*(Y*'
page.save()
In [26]: page.url_slug
Out[26]: '&*()&*(*(Y*'
どうしてこれなの?SlugFields は実際にドキュメントに従って入力を検証する必要がありますか、それとも自分でこれを行う必要がありますか? 簡単に回避できるように見えるのに、ドキュメントに制限が記載されているのはなぜですか?