Перейти к содержанию

Маршрутизация

Теперь нужно зарегистрировать маршруты ко всем созданным нами представлениям. Для этого перейдём в файл url.py в нашем проекте и в наших приложениях:

from django.conf import settings
from django.contrib import admin
from django.urls import path, include, re_path
from django.views.static import serve
from drf_spectacular.views import SpectacularAPIView, SpectacularSwaggerView

urlpatterns = [
    path("admin/", admin.site.urls),
    path("oidc/", include("apps.oidc.urls")),
    path("api/survey/", include("apps.survey.urls")),
    path("api/schema/", SpectacularAPIView.as_view(), name="schema"),
    path("api/docs/", SpectacularSwaggerView.as_view(url_name="schema"), name="docs"),
    re_path(r"^static/(?P<path>.*)$", serve, {"document_root": settings.STATIC_ROOT}),
]

Здесь укажем маршрут к админ-панели, к роутеру авторизации и опроса, а также укажем маршрут для Swagger документации и статических файлов.

from django.urls import path
from dj_rest_auth.jwt_auth import get_refresh_view

from apps.oidc.views import ItmoIdLogin, ItmoIdAuth, ItmoIdAuthUrl, ItmoIdProfileGroupView

urlpatterns = [
    path("token/refresh/", get_refresh_view().as_view(), name="token_refresh"),
    path("auth/url/", ItmoIdAuthUrl.as_view(), name="itmo_id_auth_url"),
    path("auth/", ItmoIdAuth.as_view(), name="itmo_id_auth"),
    path("login/", ItmoIdLogin.as_view(), name="itmo_id_login"),
    path("group/", ItmoIdProfileGroupView.as_view(), name="itmo_id_group"),
]

Здесь укажем маршрут для обновления JWT токенов (из библиотеки dj_rest_auth) и для всех созданных нами представлений.

from django.urls import path
from .views import SurveyQuestionList, SurveyCheckUserView, CreateSurveyAnswersView

urlpatterns = [
    path("questions/", SurveyQuestionList.as_view(), name="surveyquestion-list"),
    path("answers/", CreateSurveyAnswersView.as_view(), name="surveyanswers-create"),
    path("user/check/", SurveyCheckUserView.as_view(), name="surveyuser-check"),
]

Здесь укажем маршрут для всех созданных нами представлений.