如何在Django中实现这样的URL?

2 投票
6 回答
744 浏览
提问于 2025-04-15 16:19

我想在Django中创建像 example.com/category/catename-operation/ 这样的链接,应该怎么做呢?

还有,有时候用户输入的分类是用空格分开的,比如用户输入“my home”,那么这个分类的链接就会变成 example.com/my home/,这不是一个有效的链接。

我该怎么处理这些情况呢?

6 个回答

1

你可以在你的视图中使用slugify这个模板标签来处理空格等问题,方法如下:

from django.template.defaultfilters import slugify
slugify("This is a slug!") # Will return u'this-is-a-slug'
3

http://example.com/my%20home/ 是一个有效的网址,其中的空格被处理成了特殊的格式。Django会自动帮你处理这些特殊字符的转换,不用你自己操心。

6

如果你想让你的网址看起来更好看,比如当用户输入“我的分类”时,你可以在网址中显示“my-category”,而不是“my%20category”。我建议你了解一下SlugField(http://docs.djangoproject.com/en/dev/ref/models/fields/#slugfield),并使用ModelAdmin的prepopulated_fields属性来自动填充这个slug字段。

撰写回答