mirror of
https://github.com/QingdaoU/OnlineJudge.git
synced 2024-09-21 00:13:18 +00:00
修改用户信息api
This commit is contained in:
parent
78a8999b44
commit
b931724c9b
@ -35,6 +35,7 @@ class UserSerializer(serializers.ModelSerializer):
|
||||
|
||||
|
||||
class UserProfileSerializer(serializers.ModelSerializer):
|
||||
user = UserSerializer()
|
||||
|
||||
class Meta:
|
||||
model = UserProfile
|
||||
|
@ -1,11 +1,10 @@
|
||||
from django.conf.urls import url
|
||||
|
||||
from ..views.user import (SSOAPI, AvatarUploadAPI, TwoFactorAuthAPI,
|
||||
UserNameAPI, UserInfoAPI, UserProfileAPI)
|
||||
UserNameAPI, UserProfileAPI)
|
||||
|
||||
urlpatterns = [
|
||||
url(r"^username/?$", UserNameAPI.as_view(), name="user_name_api"),
|
||||
url(r"^user/(?P<username>\w+)/?$", UserInfoAPI.as_view(), name="user_info_api"),
|
||||
url(r"^profile/?$", UserProfileAPI.as_view(), name="user_profile_api"),
|
||||
url(r"^avatar/upload/?$", AvatarUploadAPI.as_view(), name="avatar_upload_api"),
|
||||
url(r"^sso/?$", SSOAPI.as_view(), name="sso_api"),
|
||||
|
@ -15,11 +15,12 @@ from utils.shortcuts import rand_str
|
||||
from ..decorators import login_required
|
||||
from ..models import User, UserProfile
|
||||
from ..serializers import (SSOSerializer, TwoFactorAuthCodeSerializer,
|
||||
UserSerializer, UserProfileSerializer,
|
||||
UserProfileSerializer,
|
||||
EditUserProfileSerializer, AvatarUploadForm)
|
||||
|
||||
|
||||
class UserNameAPI(APIView):
|
||||
@method_decorator(ensure_csrf_cookie)
|
||||
def get(self, request):
|
||||
"""
|
||||
Return Username to valid login status
|
||||
@ -37,37 +38,22 @@ class UserNameAPI(APIView):
|
||||
})
|
||||
|
||||
|
||||
class UserInfoAPI(APIView):
|
||||
# @login_required
|
||||
@method_decorator(ensure_csrf_cookie)
|
||||
def get(self, request, **kwargs):
|
||||
"""
|
||||
Return user info api
|
||||
"""
|
||||
try:
|
||||
user = User.objects.get(username=kwargs["username"])
|
||||
except User.DoesNotExist:
|
||||
return self.error("User does not exist")
|
||||
profile = UserProfile.objects.get(user=user)
|
||||
dit = UserProfileSerializer(profile).data
|
||||
dit["user"] = UserSerializer(user).data
|
||||
return self.success(dit)
|
||||
|
||||
|
||||
class UserProfileAPI(APIView):
|
||||
@login_required
|
||||
def get(self, request):
|
||||
def get(self, request, **kwargs):
|
||||
"""
|
||||
Return user info api
|
||||
Return user info according username or user_id
|
||||
"""
|
||||
username = request.GET.get("username")
|
||||
try:
|
||||
user = User.objects.get(id=request.user.id)
|
||||
if username:
|
||||
user = User.objects.get(username=username)
|
||||
else:
|
||||
user = request.user
|
||||
except User.DoesNotExist:
|
||||
return self.error("User does not exist")
|
||||
profile = UserProfile.objects.get(user=user)
|
||||
dit = UserProfileSerializer(profile).data
|
||||
dit["user"] = UserSerializer(user).data
|
||||
return self.success(dit)
|
||||
return self.success(UserProfileSerializer(profile).data)
|
||||
|
||||
@validate_serializer(EditUserProfileSerializer)
|
||||
@login_required
|
||||
|
@ -65,6 +65,7 @@ class APIView(View):
|
||||
for parser in self.request_parsers:
|
||||
if content_type.startswith(parser.content_type):
|
||||
break
|
||||
# else means the for loop is not interrupted by break
|
||||
else:
|
||||
raise ValueError("unknown content_type '%s'" % content_type)
|
||||
if body:
|
||||
|
Loading…
Reference in New Issue
Block a user