Для вашего пути 'create_post'
, <slug:slug>
сначала поймает это, так как createcontent
также является допустимым слагом. Поэтому вы должны изменить urlpatterns
. Вы можете поменять их местами:
urlpatterns = [
path('content/createcontent/', views.create_post, name='create_post'),
path('content/<slug:slug>/', views.post_detail, name='post_detail'),
]
, так что теперь createcontent
будет сопоставлено первым, но все же это не хорошее решение, так как теперь, если ваша статья имеет слаг createcontent
, вы не можете отобразить его. Скорее всего, лучше создать непересекающихся путей. Например:
urlpatterns = [
path('content/createcontent/', views.create_post, name='create_post'),
path('<b>post/</b><slug:slug>/', views.post_detail, name='post_detail'),
]
здесь, независимо от значения slug
, оно никогда не будет пересекаться с путем content/createcontent
.
Вам, конечно, все же нужно завершить sh само представление, поскольку сейчас оно не будет правильно обрабатывать запрос POST.