问题描述
我有一个Django Rest / Vue.js应用程序。我使用的是基本的Django身份验证,但是由于它是单页应用程序,因此我切换到了令牌身份验证,以便可以通过端点管理登录/注销/注册并获得更一致的应用程序。
总体运行良好,但是我的主要问题是我获得了一些权限并覆盖了一些视图集。我必须禁用它们才能使我的应用程序可以使用令牌身份验证:
我的权限:
from rest_framework import permissions
class IsOwnReviewOrReadOnly(permissions.BasePermission):
def has_object_permission(self,request,view,obj):
if request.method in permissions.SAFE_METHODS:
return True
return obj.restaurant_review.review_author == request.user
class IsAuthorOrReadOnly(permissions.BasePermission):
def has_object_permission(self,obj):
if request.method in permissions.SAFE_METHODS:
return True
return obj.review_author == request.user
我的观点:
class RestaurantReviewViewset(viewsets.ModelViewSet):
queryset = models.RestaurantReview.objects.all().order_by("-created_at")
def get_serializer_class(self):
if self.request.method == 'GET':
return serializers.RestaurantReviewGETSerializer
else:
return serializers.RestaurantReviewSerializer
permission_classes = [IsAuthenticatedOrReadOnly,IsAuthorOrReadOnly]
def perform_create(self,serializer):
serializer.save(review_author=self.request.user)
所以我的猜测是Django无法找到request.user
,这与我的新身份验证有关吗?令牌认证可以提供吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)