api Package

filters Module

class kawaz.api.filters.KawazObjectPermissionFilterBackend[source]

Bases: 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)[source]

mixins Module

class kawaz.api.mixins.ReadModelMixin[source]

Bases: object

A mixin for reading model objects.

It add get_queryset_for_read method and override get_queryset method.

get_queryset()[source]
get_queryset_for_read()[source]

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[source]

Bases: object

A mixin for writing model objects.

It add get_queryset_for_write method and override get_queryset method.

get_queryset()[source]
get_queryset_for_write()[source]

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[source]

Bases: rest_framework.mixins.CreateModelMixin

Create model instance and automatically save author

get_extra_fields()[source]
perform_create(serializer)[source]
class kawaz.api.mixins.ListModelMixin[source]

Bases: object

List a queryset.

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

Bases: object

Retrieve a model instance.

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

Bases: object

Update a model instance.

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

Bases: object

Destroy a model instance.

destroy(request, *args, **kwargs)[source]
perform_destroy(instance)[source]

urls Module

views Module

class kawaz.api.views.KawazGenericViewSet(**kwargs)[source]

Bases: 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)[source]

Bases: 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)[source]

Bases: rest_framework.mixins.RetrieveModelMixin, rest_framework.mixins.ListModelMixin, kawaz.api.views.KawazGenericViewSet

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