簡體   English   中英

在Django Rest Framework中更新和刪除用戶

[英]Update And Delete Users in Django Rest Framework

我的DRF后端有一個工作寄存器API。 我希望能夠通過PUT請求對用戶個人資料進行更新。 如何編寫驗證用戶並用匹配ID更新用戶的方法? 我也想編寫一個方法來處理DELETE請求,並刪除ID與請求匹配的用戶。

# serializers.py

class RegisterSerializer(ModelSerializer):
class Meta:
    model = User
    fields = (
        'account_type',
        'id',
        'username',
        'name',
        'email',
        'phone',
        'country',
        'city',
        'adress_1',
        'adress_2',
        'zip_code',
        'photo',
        'password',
    )

    ...

def create(self, validated_data):
    user = super(RegisterSerializer, self).create(validated_data)
    user.set_password(validated_data['password'])
    user.save()

    return user

# api.py

class RegisterAPI(CreateAPIView):
permission_classes = (AllowAny,)
serializer_class = RegisterSerializer

def post(self, request, *args, **kwargs):
    serializer = self.get_serializer(data=request.data)
    serializer.is_valid(raise_exception=True)

    self.perform_create(serializer)

    token = Token.objects.create(user=serializer.instance)
    token_data = {"token": token.key}

    return Response({
        "token": token.key,
        "user": {**serializer.data}
    })

# urls.py

urlpatterns = [
    ...
    path('api/auth/register', RegisterAPI.as_view()),
    ...
]

您可以在文檔中閱讀有關put方法的更多詳細信息

def put(self, request, pk, format=None):
    user = self.get_object(pk)
    serializer = UserSerializer(user, data=request.data)
    if serializer.is_valid():
        serializer.save()
        return Response(serializer.data)
    return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM