Django: переход по url не работает, как это исправить?

Добрый день! Столкнулся с такой ошибкой: при нажатии на ссылку, url меняется, но переход на другую страницу не работает.

Точнее:

Имеется страница, на которой отображается информация о статье (test - slug статьи): http://127.0.0.1:8001/articles/article/test/

url для перехода на страницу обновления: http://127.0.0.1:8001/articles/article/test/update/

Состав файла urls.py:

urlpatterns = [
    path('', views.index, name='articles_catalog'),
    path('article/<slug:slug>/<str:author>/', views.details, name='comment_creation'),
    path('article/<slug:slug>/update/', views.update_article, name='update_article'),
    path('article/<slug:slug>/', views.details, name='details'),
    path('new_article/', views.new_article, name='new_article')
]

Ссылка для перехода на:

<a
      href="{% url 'articles:update_article' slug=article.slug %}"
      id="update_article"
      target="_self"
      rel="noreferrer noopener"
      class="thq-button-filled thq-button-animated"
      >
           UPDATE
</a>

Сам вид:

@login_required()
def update_article(request, slug):
    print('OK1')
    article = Article.objects.get(slug=slug)
    tags = Tag.objects.all()
    if request.method == 'POST':
        print('POST')
    else:
        form = ArticleForm(instance=article)
        return render(request, 'articles/create-update.html', {'form': form, 'tags': tags})

В результате, когда я нажимаю на ссылку, url в адресной строке меняется, но сама страница - остается прежней.

Пожалуйста, подскажите, что я мог упустить.

Маршрут article/<slug:slug>/<str:author>/ совпадает раньше, чем article/<slug:slug>/update/, потому что "update" - это допустимая строка author. Измените порядок этих URL так, чтобы маршрут update был первым.

Это также означает, что "update" - это особое значение, и у вас никогда не может быть автора с именем "update", что вы должны как-то обеспечить.

Вернуться на верх