首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于Drf类的视图如何管理方法调用

基于Drf类的视图如何管理方法调用
EN

Stack Overflow用户
提问于 2022-11-20 10:07:19
回答 1查看 27关注 0票数 1

我一直在Django的FBV上工作,现在正在尝试CBV。我创建了一个基本的crud应用程序

Views.py

代码语言:javascript
复制
class UserViews(APIView):
permission_classes = [IsViewOnly | IsManager | IsAdmin | IsStaff]

def get_objects(self, user_id):
    #query
def post(self, request):        
    #create code
def get(self, request):
    #details code
def put(self, request):
    #update code
def delete(self):
    #code

urls.py

代码语言:javascript
复制
urlpatterns = [
path('add-user/', views.UserViews.as_view(), name="create-user"),
path('update-user/', views.UserViews.as_view(), name="update-user"),
path('delete-user/', views.UserViews.as_view(), name="delete-user"),
path('list-users', views.UserSearchList.as_view(), name="list-user"),
path('view-user', views.UserViews.as_view(), name="view-user"),]

这段代码正在工作,但是,我们如何防止这样一种情况,即管理器想要查看用户详细信息API,但是使用delete方法执行它,而用户现在被删除。

EN

回答 1

Stack Overflow用户

发布于 2022-11-20 10:35:10

您可以在基于函数的视图中使用@api_view装饰器,以便对APIView类中的特定方法设置特定权限。

代码语言:javascript
复制
@permission_classes([IsManager, ])
def delete(self, request):
    # your code.

注意事项:当您通过class属性设置新的权限类时,您告诉视图忽略settings.py文件中设置的默认列表。参考资料:Django设置权限策略

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74507179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档