之前我的博客详情页面的url是这样的
https://www.guanacossj.com/JiaBlog/article/107/
短小精悍
使用了django-uuslug之后的url是这样的
https://www.guanacossj.com/JiaBlog/article/107/2020xin-nian-kuai-le/
1、安装django-uuslug
pip install django-uuslug
2、修改文章表
class Articles(models.Model):
id = models.AutoField(primary_key=True) # id
title = models.CharField(max_length=150) # 博客标题
...
url_slug = models.SlugField(editable=False,max_length=200)
3、重写保存方法
class Articles(models.Model):
id = models.AutoField(primary_key=True) # id
title = models.CharField(max_length=150) # 博客标题
...
url_slug = models.SlugField(editable=False,max_length=200)
def save(self, *args, **kwargs):
self.url_slug = slugify(self.title)
super(Articles, self).save(*args, **kwargs)
4、同步数据库
python manage.py makemigrations
python manage.py migrate
到目前为止,其实还是没有生成slug,需要再次保存每一篇文章才可以,到admin里面,挨个打开文章,然后保存,有点蠢,不过我还没想到更好的办法
5、修改url
这里由于多了一个参数,记得把函数也改一下,加一个入参,不处理就行
urlpatterns = [
...
url(r'^article/(?P<article_id>[0-9]+)/(?P<slug>[-\w]+)/$', views.blog_info),
...
]
6、修改html的链接
<h2><a href="/JiaBlog/article/{{ i.id }}/{{ i.url_slug }}" target="_blank">{{ i.title }}</a></h2>
类似这样就可以了