in your viewset class,you could  rewrite   get_permissions to set which
permissions you want on action
    def get_permissions(self, *args, **kwargs):
        if self.action == 'create':
            self.permission_classes = (AllowAny,)
        elif self .action == 'login':
            self.permission_classes = (AllowAny,)

Azar Mohamed <azarmhm...@gmail.com> 于2019年9月7日周六 下午11:37写道:

> I am creating REST API for Product, which has following Permission,
> (create_product, view_product, edit_product). In my Project I am having
> various users with different roles (Ex: Producer, Retailer,
> Consumer,...etc). I am assigning permission to individual Roles. I am using
> Django Group Permission
>
> Example: The "Producer" role has "create_product" and "view_product"
> permission. The "Retailer" role has "edit_product" permission. The
> "Consumer" role has no permission.
>
> I want to restrict the Access based on the permission code. I need a
> generic approach to solve this. I want to use the same approach for
> different views with different permission codes.
>
> In my view.py,
>
> class Product(viewsets.ModelViewSet):
>
>      serializer_class = ProductSerializer
>      queryset = Product.objects.all()
>
> In settings.py, I have added following code.
>
>  REST_FRAMEWORK = {
>      'DEFAULT_PERMISSION_CLASSES': (
>            'rest_framework.permissions.IsAuthenticated',
>      ),
>      'DEFAULT_AUTHENTICATION_CLASSES': (
>            'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
>            'rest_framework.authentication.BasicAuthentication',
>            'rest_framework.authentication.SessionAuthentication',
>      ),
>  }
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to django-users+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/django-users/b67aed04-a096-4c1d-a453-b0be1274dc83%40googlegroups.com
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CAPO6ddikduNXS2_U%3Ddy_0db_jM19dhQUKeKJ7Sj%2BPAU8eWknxQ%40mail.gmail.com.

Reply via email to