Краткий ответ : это правильное поведение для слизняка, поскольку слаг не должен иметь точек.
A слаг просто не допускает точек вслизнякВ самом деле, если мы slugify(..)
[Django-doc] например 'foo.bar'
, мы получим:
>>> from django.utils.text import slugify
>>> slugify('foo.bar')
'foobar'
Следовательно, это абсолютно верно для не принимать точки.Таким образом, это означает, что SlugField
вашей модели, скорее всего, неправильно слагает заголовок (или что-то еще «слагалищенное»).
Вы можете принять str
ings и path
s с помощью *Преобразователи пути 1023 * и path
, как указано в документации для преобразователей пути [Django-doc] :
str
- Соответствует любой непустой строке , за исключением разделителя пути, '/'
.Это значение по умолчанию, если преобразователь не включен в выражение.
(..)
path
- соответствует любой непустой строке , включая разделитель пути, '/'
.Это позволяет сопоставлять полный путь URL-адреса, а не только сегмент пути URL-адреса, как с str
.
Таким образом, вы можете указать, например:
path('assembly/<b><str:slug></b>/', views.AssemblyDetailView.as_view(), name='assembly-detail')
но опять же, это не слизняк.