Как сделать так, чтобы определенный путь django url проверялся только в том случае, если все остальные пути были проверены

Я создаю приложение, в котором пользователи могут получить доступ к своим архивам через простой slug, следующим образом:

lekha.cc/<archive_slug>

Это именно то, как это делает instagram. Однако, когда я перехожу на любую другую страницу, например

lekha.cc/dashboard

Запускается код для просмотра архива, который сообщает, что не нашел архива с таким названием. Это проблема по двум причинам: мы не хотим, чтобы выполнялся лишний код, и если пользователь решит назвать свой архив 'dashboard', весь сайт потенциально сломается, поскольку никто не сможет получить доступ к своей панели.

Моя папка urls.py выглядит следующим образом:

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('main.urls'), name='index'),
    path('onboarding/', account_views.onboarding, name='onboarding'),
    path('register/', account_views.register, name='register'),
    path('login/', auth_view.LoginView.as_view(authentication_form=LoginForm, template_name='accounts/login.html'), name="login"),
    path('logout/', account_views.logout_view, name='logout'),
    path('dashboard/', archival_views.dashboard, name='dashboard'),
    path('account_settings/', account_views.account_settings, name='account_settings'),
    path('<str:slug>/', main_views.archive, name='archive'),
    path('item/<str:slug>/', main_views.work, name='work'),
]

У кого-нибудь есть решения этой проблемы?

Проблема была вызвана тем, что браузер запрашивал /favicon.ico/, который django пропускал через мое представление. Файл url.py теоретически должен просматривать все URL по порядку, пока не найдет нужное представление, поэтому по умолчанию django уже проверяет URL только один раз.

Настоящая проблема описана далее здесь

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