2013-06-19 12 views

cevap

2

By default permissions are unrestricted. settings.py'unuzda, kullanıcıların doğrulanması ve doğru Django model iznine sahip olması gereken farklı bir varsayılanlar kümesi belirleyebilirsiniz. Etkili olabilmeniz içinözniteliğini DjangoModelPermissions için görünüm sınıfınızda belirtmeniz gerekir.

# settings.py 
REST_FRAMEWORK = { 
    'DEFAULT_PERMISSION_CLASSES': (
     'rest_framework.permissions.IsAuthenticated', 
     'rest_framework.permissions.DjangoModelPermissions' 
    ) 
} 

# views.py 
class DocumentList(APIView): 
    model = Document 
    ... 

DjangoModelPermissions izin haritası can be found in the source.

  • GET, SEÇENEKLER ve BAŞ iznini gerektirmeyen ama biz IsAuthenticated belirtilen beri biz hala
  • POST haritalar
  • haritalar SİL değiştirmek için
  • PUT ve YAMA harita eklemek için bu şart koşuyoruz Bu benim yaptığım budur
0

silin. Proje için documentation

düzenlendi izin sınıfından Referans

proje

from rest_framework import permissions 

class IsAuthenticatedOrReadOnly(permissions.BasePermission): 

    def has_object_permission(self, request, view, obj): 
     # Read permission - always allow for GET request 
     if request.method in permissions.SAFE_METHODS: 
      return True 

     # Write permissions - only if authenticated 
     return request.user and request.user.is_authenticated() 

Şimdi görünümde bu PermissionClass kullanmak/permissions.py

@permission_classes((IsAuthenticatedOrReadOnly,)) 
class ShopViewSet(viewsets.ModelViewSet): 
    queryset = Shop.objects.all() 
    serializer_class = ShopSerializer