Создание наборов представлений и маршрутизаторов

ViewSets позволяет определить взаимодействие API-интерфейса и позволить REST Framework динамически создавать URL-адреса с помощью объекта Router. С помощью наборов представлений можно избежать повторения логики для нескольких представлений. Наборы представлений включают действия для типовых операций создания, извлечения, обновления, удаления - list(), create(), retrieve(), update(), partial_update() и destroy().

Создадим набор представлений для модели Course. Измените файл api/views.py и добавьте в него следующий код:

from rest_framework import viewsets
from .serializers import CourseSerializer


class CourseViewSet(viewsets.ReadOnlyModelViewSet):
    queryset = Course.objects.all()
    serializer_class = CourseSerializer

Подкласс ReadOnlyModelViewSet, который предоставляет действия только для чтения list() и retrieve() для обоих объектов list или извлекает один объект. Отредактируйте api/urls.py и создайте маршрутизатор для нашего представления:

from django.conf.urls import url, include
from rest_framework import routers
from . import views

router = routers.DefaultRouter()
router.register('courses', views.CourseViewSet)

urlpatterns = [
    # ...
    url(r'^', include(router.urls)),
]

Мы создаем объект DefaultRouter и регистрируем наш набор представлений с префиксом courses. Маршрутизатор берет на себя ответственность за создание URL-адресов автоматически для нашего набора представлений.

Откройте в своем браузере http://127.0.0.1:8000/api/ .Вы увидите, что маршрутизатор перечисляет все наборы представлений в своем базовом URL-адресе, как показано на следующем снимке экрана:

Вы можете перейти http://127.0.0.1:8000/api/courses/ , чтобы получить список курсов.

Здесь можно получить дополнительные сведения о наборах представлений: http://www.django-rest-framework.org/api-guide/viewsets/

Также можно найти дополнительные сведения о маршрутизаторах здесь: http://www.django-rest-framework.org/api-guide/routers/

results matching ""

    No results matching ""