首页 > 解决方案 > django DetailView url 隐藏 pk

问题描述

//我在Django中有一个detailview

http://www.test.nl/detail_view/1/

//有没有办法在url中隐藏/1/,这样用户就看不到了?

标签: django

解决方案


您可以,但您需要指定另一种方式来唯一标识您的模型实例。常用的有:SlugFieldUUIDField

因此,您应该修改您的模型以包含其中一个(或任何其他您可以确保在此方面唯一的字段),然后根据需要覆盖模型的保存方法,以便正确填充该字段。

最后,您还需要修改 urls.py 以解析您的唯一字段,而不是您要隐藏的默认字段 (pk)

例如

urlpatterns = [
    # ...
    path('detail_view/<slug:slug>/', views.detail_view),
]

推荐阅读