Почему Django продолжает перенаправлять на `/dashboard/` вместо /profile/dashboard или пользовательского URL даже после изменения пути?

Я работаю над проектом Django с отдельными приложениями для аутентификации (auth_app) и пользовательской панели (dashboard_app). После успешного входа в систему я ожидаю, что пользователь будет перенаправлен на приборную панель, но Django продолжает перенаправлять на /dashboard/ вместо /profile/dashboard/ или любого другого URL, который я настраиваю.

Вот что я сделал:

  1. Конфигурация URL:

    • В dashboard_app/urls.py:

      from django.urls import path
      from .views import DashboardController
      
      app_name = 'dashboard_app'
      
      urlpatterns = [
          path("dashboard/", DashboardController.as_view(), name='dashboard'),
      ]
      
    • В project/urls.py я включил dashboard_app по /profile/ пути:

      from django.contrib import admin
      from django.urls import path, include
      
      urlpatterns = [
          path('admin/', admin.site.urls),
          path('auth/', include('auth_app.urls')),
          path('profile/', include('dashboard_app.urls')),
      ]
      
  2. Контроллер входа:

    После успешного входа я использую reverse для перенаправления на приборную панель:

    from django.shortcuts import redirect
    from django.urls import reverse
    
    class LoginController(View):
        def post(self, request):
            # Authenticate the user
            ...
            return redirect(reverse('dashboard_app:dashboard'))
    

Проблема:

После успешного входа в систему я перенаправляюсь на /dashboard/ вместо /profile/dashboard/ или любого другого пользовательского пути. Даже если я попытаюсь изменить URL в dashboard_app/urls.py:

from django.urls import path
from .views import DashboardController

app_name = 'dashboard_app'

urlpatterns = [
    path('somewhere/', DashboardController.as_view(), name='dashboard'),
]

однако он продолжает перенаправлять на /dashboard/ вместо profile/somewhere/.

  • У меня нет никаких пользовательских промежуточных программ.
  • Я не использую JavaScript; только Jinja для шаблонизации.

HTML-форма, используемая в шаблоне register_page.html, выглядит следующим образом:

<div id="error-message" style="{% if form.errors %}display:block{% else %}display:none{% endif %};">
    <ul>
        {% for field in form %}
        {% for error in field.errors %}
        <li>{{ error }}</li>
        {% endfor %}
        {% endfor %}
    </ul>
</div>

<!-- Registration Form -->
<form id="register-form" method="POST" action="{% url 'auth_app:register' %}">
    {% csrf_token %}

    <!-- Username -->
    {{ form.username.label_tag }}
    {{ form.username }}<br>

    <!-- Password1 -->
    {{ form.password1.label_tag }}
    {{ form.password1 }}<br>

    <!-- Password2 -->
    {{ form.password2.label_tag }}
    {{ form.password2 }}<br>

    <button type="submit">Register</button>
</form>

<p>Already have an account? <a href="{% url 'auth_app:login' %}">Login here</a></p>
</body>
</html>

Что я пробовал:

  • Я проверил шаблоны URL в dashboard_app/urls.py и project/urls.py, чтобы убедиться, что они правильные.
  • Я попробовал изменить URL перенаправления в LoginController, но перенаправление всегда заканчивалось /profile/dashboard/.
  • Я очистил кэш Django и перезапустил сервер разработки, но проблема сохраняется.

Вопрос:

Почему Django перенаправляет на /dashboard/ вместо ожидаемого /profile/dashboard/ или любого другого пользовательского пути? Как я могу исправить эту проблему?

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