معرفی شرکت ها


djangorestframework-mango-0.2.0


Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر

توضیحات

A set of viewset mixin for the Django REST Framework.
ویژگی مقدار
سیستم عامل -
نام فایل djangorestframework-mango-0.2.0
نام djangorestframework-mango
نسخه کتابخانه 0.2.0
نگهدارنده []
ایمیل نگهدارنده []
نویسنده Jun Young Lee
ایمیل نویسنده legshort@gmail.com
آدرس صفحه اصلی https://github.com/legshort/django-rest-framework-mango/
آدرس اینترنتی https://pypi.org/project/djangorestframework-mango/
مجوز MIT
Django Rest Framework Mango =========================== A set of viewset mixin for the `Django REST Framework. <https://www.django-rest-framework.org/>`__ Installation ------------ ``pip install djangorestframework_mango`` Usage ----- ActionMixin ~~~~~~~~~~~ It has six action methods that can be use instead of compare action with. - is_create_action() - is_retrieve_action() - is_list_action() - is_update_action() - is_partial_update_action() - is_destroy_action() .. code:: python class ViewSet(ActionMixin, viewsets.GenericViewSet): queryset = Model.objects.all() serializer_class = ModelSerializer def get_queryset(self): queryset = super().get_queryset() if self.is_create_action: # change queryset for create queryset = queryset.change_for_create() elif self.is_retrieve_action(): # change queryset for retrieve queryset = queryset.change_for_retrieve() elif self.is_list_action(): # change queryset for list queryset = queryset.change_for_list() elif self.is_update_action(): # change queryset for update queryset = queryset.change_for_update() elif self.is_partial_update_action(): # change queryset for partial update queryset = queryset.change_for_partial_update() elif self.is_destroy_action(): # change queryset for destroy queryset = queryset.change_for_destroy() return queryset QuerysetMixin ~~~~~~~~~~~~~ It find action base queryset method and run it .. code:: python class ViewSet(QuerysetMixin, viewsets.GenericViewSet): queryset = Model.objects.all() serializer_class = ModelSerializer # this method run automatically when this viewset gets create action def create_queryset(self, queryset): queryset = queryset.change_for_create() return queryset # this method run automatically when this viewset gets list action def list_queryset(self, queryset): queryset = queryset.change_for_list() return queryset # this method run automatically when this viewset gets retrieve action def retrieve_queryset(self, queryset): queryset = queryset.change_for_retrieve() return queryset # this method run automatically when this viewset gets update action def update_queryset(self, queryset): queryset = queryset.change_for_update() return queryset # this method run automatically when this viewset gets partial update action def partil_update_queryset(self, queryset): queryset = queryset.change_for_partial_update() return queryset # this method run automatically when this viewset gets destroy action def destroy_queryset(self, queryset): queryset = queryset.change_for_delete() return queryset # this method run automatically when this viewset gets update_extra_profile action def update_extra_profile_queryset(self, queryset): queryset = queryset.change_for_update_extra_profile() return queryset @action(methods['POST'], detail=True) def update_extra_profile(self, request, pk=None): # this method calls update_extra_profile_queryset() internally queryset = self.get_queryset() return Response(serializer.data) SerializerMixin ~~~~~~~~~~~~~~~ You can define multi serializers by action .. code:: python class ViewSet(QuerysetMixin, viewsets.GenericViewSet): queryset = Model.objects.all() serializer_class = ModelSerializer serializer_class_by_actions = { 'create': { 'v1': ModelCreateSerializerV1, 'v2': ModelCreateSerializerV2, }, 'list': ModelListSerializer, 'retrieve': ModelRetrieveSerializer, 'update': ModelUpdateSerializer, 'partial_update': ModelParitlaUpdateSerializer, 'destory': ModelDestorySerializer, 'update_extra_profile': ModelUpdateExtraProfileSerializer, } @action(methods['POST'], detail=True) def update_extra_profile(self, request, pk=None): # self.get_serializer returns ModelUpdateExtraProfileSerializer serializer = self.get_serializer() return Response(serializer.data) PermissionMixin ~~~~~~~~~~~~~~~ You can define multi permissions by action .. code:: python class ViewSet(QuerysetMixin, viewsets.GenericViewSet): queryset = Model.objects.all() serializer_class = ModelSerializer permission_by_actions = { 'create': [Authenticated], 'list': [ReadOnly], 'retrieve': [AllowAny], 'update': [Owner], 'partial_update': [Owner], 'destory': [Owner], 'update_extra_profile': [Owner], } @action(methods['POST'], detail=True) def update_extra_profile(self, request, pk=None): # this method requires Owner permission serializer = self.get_serializer() return Response(serializer.data) SessionMiddleware ~~~~~~~~~~~~~~~~~ You can use session data within request life cycle. - add SessionMiddleware - use session from view, serializer and model .. code:: python class ViewSet(viewsets.GenericViewSet): queryset = Model.objects.all() serializer_class = ModelSerializer def list_queryset(self, queryset): session = SessionMiddleware.get_session() session['current_user'] = self.request.user return queryset class Model(DjangoModel): @property def current_user(self): session = SessionMiddleware.get_session() session['current_user'] = self.request.user return session['current_user']


نیازمندی

مقدار نام
- django
- djangorestframework


نحوه نصب


نصب پکیج whl djangorestframework-mango-0.2.0:

    pip install djangorestframework-mango-0.2.0.whl


نصب پکیج tar.gz djangorestframework-mango-0.2.0:

    pip install djangorestframework-mango-0.2.0.tar.gz