Для приведенного выше примера будет достаточно pk_url_kwargs = 'param'
?
Да . Он будет искать в вашей модели объект с первичным ключом pk
, param
в вашем URL.
Когда мне использовать слаг?
Django глоссарий описывает slug как:
Короткая метка для чего-либо, содержащая только буквы, цифры, подчеркивания или дефисы.
Это то, что вы часто видите в URL системы управления контентом (CMS) , например:
https://www.djangoproject.com/weblog/2008/apr/12/<b>spring</b>/
https://www.myblog.com/<b>this-is-the-title-of-an-article</b>
Вы можете добавить SlugField
[Django -док] или AutoSlugField
[readthedocs.io] из django-autoslug
пакет [GitHub] для хранения пули. Слаг обычно строится на основе содержимого поля (например, title
для Book
, name
для Author
, et c.).
* DetailView
[Django -doc] затем отфильтрует поле, указанное атрибутом slug_field
[Django -doc] в содержании в URL, указанном атрибутом slug_url_kwarg
[Django -doc] . Оба имеют по умолчанию 'slug'
. Таким образом, вы можете указать в своем URL что-то вроде:
path('authors/<b><slug:slug></b>/', AuthorDetailView.as_view(), name='author-detail'),
Конечно, учитывая вашу модель (Author
имеет какое-то поле слагов).