【发布时间】:2019-08-28 04:58:36
【问题描述】:
我正在使用 DRF(Django Rest 框架)构建端点。
django==2.1.5
djangorestframework==3.9.1
django-rest-auth
djangorestframework-jwt
我有模型“项目”,我想为 GET 和 POST 请求设置不同的权限类。
这是我的做法:
@csrf_exempt
@api_view(['GET', 'POST'])
@authentication_classes([TokenAuthentication])
@permission_classes([AllowAny])
def item_list(request):
if request.method == 'GET':
items = Item.objects.all()
serializer = ItemSerializer(items, many=True)
return JsonResponse(serializer.data, safe=False)
elif request.method == 'POST':
data = JSONParser().parse(request)
serializer = ItemSerializer(data=data)
if serializer.is_valid():
serializer.save()
return JsonResponse(serializer.data, status=201)
return JsonResponse(serializer.errors, status=400)
我想为所有方法使用一个端点,如下所示:
urlpatterns = [
path('api/item/', views.item_list),
path('api/item/<int:pk>/', views.item_details),
]
我想AllowAny用户为GET请求方法
并检查isAdminUser 是否为POST 请求方法
我可以像在 Flask 中那样做吗,即一种方法一个装饰器?
【问题讨论】:
标签: python django django-rest-framework