Я пытаюсь передать два аргумента, чтобы создать динамический URL для каждого поста приложения блога, над которым я работаю. Я получаю это, если я передаю идентификатор, но не знаю, какой синтаксис при использовании аргументов +1 (и не делаю ли я все правильно).
Я хочу, чтобы URL были 'post/<int:pk>/<slug:slug>/'
но может заставить его работать только с идентификатором: 'post/<int:pk>/
Вот как у меня это сейчас:
URLS.PY
urlpatterns = [
...
path('post/<int:pk>/<slug:slug>/', PostDetailView.as_view(), name='post-detail'),
path('post/new/', PostCreateView.as_view(), name='post-create'),
path('post/<int:pk>/<slug:slug>/update/', PostUpdateView.as_view(), name='post-update'),
path('post/<int:pk>/<slug:slug>/delete/', PostDeleteView.as_view(), name='post-delete'),
...
]
VIEWS.PY
class PostDetailView(DetailView):
model = Post
Я вызываю это в шаблоне:
<ul class="secondary-menu menu-list">
<li class="menu-item"><a href="{% url 'post-update' object.slug %}">Edit Post</a></li>
<li class="red-button"><a href="{% url 'post-delete' object.slug %}">Delete</a></li>
</ul>
И имею эту функцию для получения пути к любому конкретному экземпляру в MODELS.py
def get_absolute_url(self):
return reverse('post-detail', kwargs={'pk': self.pk, 'slug':slug})
Я получаюследующая ошибка во время рендеринга шаблона
Reverse for 'post-detail' with arguments '(1,)' not found. 1 pattern(s) tried: ['post/(?P<pk>[0-9]+)/(?P<slug>[-a-zA-Z0-9_]+)/$']