Django 프로젝트에서 Django 사용자 모델을 사용하고 있습니다. 내 사용자보기 :Django에서 사용자에게 권한을 할당하십시오.
from django.contrib.auth.models import User
from django.dispatch import receiver
from django.db.models.signals import post_save
from rest_framework import generics
from rest_framework import permissions
from rest_framework import status
from rest_framework.authtoken.models import Token
from rest_framework.response import Response
from myapp.serializers.user import UserSerializer, UserListSerializer
class UserList(generics.ListCreateAPIView):
model = User
permission_classes = (permissions.IsAuthenticated,)
_ignore_model_permissions = True
serializer_class = UserListSerializer
queryset = User.objects.exclude(pk=-1)
def post(self, request, *args, **kwargs):
userName = request.DATA.get('username', None)
userPass = request.DATA.get('password', None)
user = User.objects.create_user(username=userName, password=userPass)
if not user:
return Response({'message': "error creating user"}, status=status.HTTP_200_OK)
return Response({'username': user.username}, status=status.HTTP_201_CREATED)
class UserDetail(generics.RetrieveUpdateDestroyAPIView):
model = User
permission_classes = (permissions.IsAuthenticated,)
_ignore_model_permissions = True
serializer_class = UserSerializer
queryset = User.objects.exclude(pk=-1)
수퍼 유저로 로그인 한 사용자 페이지를 보려고하면 모든 사용자의 목록을 볼 수 있습니다. 그러나 수퍼 유저가 아닌 사용자와 액세스하려고하면 빈 목록이 표시됩니다. 모든 사용자가 수퍼 유저가 아닌 경우 사용자 목록을 볼 수 있지만 자신의 사용자 정보는 볼 수 있어야합니다. 신호 (예 : post_migrate
)를 사용했지만 문제는 각 사용자마다 마이그레이션 할 때마다 다른 모든 사용자에게보기 권한을 부여해야한다는 것입니다.
더 쉬운 방법이 있나요?
당신이 인증 된 사용자가 USER_ID를 전달하여 다른 사용자의 세부 정보를 볼 수 원하지 않는 찾으시는 것입니까? – Windsooon