slugを使って詳細ページurlの変更
urlを任意に変更する方法はどうすればよいのか?
urls.py ではurlpatterns = [ path("blog/
参考url
【django2.0】便利なパスコンバータのご紹介
用語集 | Django documentation | Django
前提条件
urls.py
urlpatterns = [ path("blog/<int:pk>", BlogDetailView) ,...]
models.py
class Blog(models.Model): title = models.CharField(max_length=100) content = models.TextField() private = models.BooleanField(default=True)
________________________________________________________________________________
解決案
概要:modelのBlogにslugを加える。加えたらurls.pyのpathを書き変える。
models.py
class Blog(models.Model): title = models.CharField(max_length=100) content = models.TextField() private = models.BooleanField(default=True) #前提コードから下記一文を追加する slug = models.SlugField(default="default")
$ python manage.py makemigrations $ python manage.py migrate
adminページから特別なurlにしたい要素を選び、slug欄を何かに変更する。
今回はspecial とする。
urls.py
#<int:pk> から<slug>に変更する urlpatterns = [ path("blog/<slug>", BlogDetailView) ,...]
これでlocalhost:8000/blog/special と入力すると選んだページが表示され、好きなurlに変更できた。