api Package

filters Module

class kawaz.api.filters.KawazObjectPermissionFilterBackend[ソース]

ベースクラス: rest_framework.filters.BaseFilterBackend

A filter backend that limits results to those where the requesting user has read object level permissions.

filter_queryset(request, queryset, view)[ソース]

mixins Module

class kawaz.api.mixins.ReadModelMixin[ソース]

ベースクラス: object

A mixin for reading model objects.

It add get_queryset_for_read method and override get_queryset method.

get_queryset()[ソース]
get_queryset_for_read()[ソース]

Return a queryset for reading.

If the object manager have published method, this execute the method with self.request.user, otherwise it simply return all.

class kawaz.api.mixins.WriteModelMixin[ソース]

ベースクラス: object

A mixin for writing model objects.

It add get_queryset_for_write method and override get_queryset method.

get_queryset()[ソース]
get_queryset_for_write()[ソース]

Return a queryset for writing.

If the object manager have related method, this execute the method with self.request.user, otherwise it simply return all.

class kawaz.api.mixins.CreateModelMixin[ソース]

ベースクラス: rest_framework.mixins.CreateModelMixin

Create model instance and automatically save author

get_extra_fields()[ソース]
perform_create(serializer)[ソース]
class kawaz.api.mixins.ListModelMixin[ソース]

ベースクラス: object

List a queryset.

list(request, *args, **kwargs)[ソース]
class kawaz.api.mixins.RetrieveModelMixin[ソース]

ベースクラス: object

Retrieve a model instance.

retrieve(request, *args, **kwargs)[ソース]
class kawaz.api.mixins.UpdateModelMixin[ソース]

ベースクラス: object

Update a model instance.

partial_update(request, *args, **kwargs)[ソース]
perform_update(serializer)[ソース]
update(request, *args, **kwargs)[ソース]
class kawaz.api.mixins.DestroyModelMixin[ソース]

ベースクラス: object

Destroy a model instance.

destroy(request, *args, **kwargs)[ソース]
perform_destroy(instance)[ソース]

urls Module

views Module

class kawaz.api.views.KawazGenericViewSet(**kwargs)[ソース]

ベースクラス: rest_framework.viewsets.GenericViewSet

Kawaz で使用する API が通常行う設定を事前に行った GenericViewSet 下記に上げる設定が行われている

  • レスポンスをデフォルトでJSONで返すように指定
  • 権限チェックに DjangoModelPermissions と DjangoObjectPermissions を指定
  • フィルターバックエンドに DjangoFilterBackend と KawazObjectPermissionFilterBackend を指定
注意:
KawazObjectPermissionFilterBackend は全てのオブジェクトの権限をループ で検索するバックエンドのため大量のオブジェクトに対して実行すると実働 時間がかかる可能性が存在する
filter_backends = (<class 'rest_framework.filters.DjangoFilterBackend'>, <class 'kawaz.api.filters.KawazObjectPermissionFilterBackend'>)
permission_classes = (<class 'rest_framework.permissions.DjangoObjectPermissions'>, <class 'rest_framework.permissions.DjangoModelPermissions'>)
renderer_classes = (<class 'rest_framework.renderers.JSONRenderer'>,)
class kawaz.api.views.KawazModelViewSet(**kwargs)[ソース]

ベースクラス: kawaz.api.mixins.CreateModelMixin, rest_framework.mixins.RetrieveModelMixin, rest_framework.mixins.UpdateModelMixin, rest_framework.mixins.DestroyModelMixin, rest_framework.mixins.ListModelMixin, kawaz.api.views.KawazGenericViewSet

KawazGenericViewSet をベースとした読み書き用APIのViewSet retrieve, list に加え create, destroy, update, partial_update を提供

class kawaz.api.views.KawazReadOnlyModelViewSet(**kwargs)[ソース]

ベースクラス: rest_framework.mixins.RetrieveModelMixin, rest_framework.mixins.ListModelMixin, kawaz.api.views.KawazGenericViewSet

KawazGenericViewSet をベースとした読み込み専用APIのViewSet retrieve, list のみを提供