增加修改个人资料的功能
This commit is contained in:
@@ -61,4 +61,14 @@ class ResetPasswordSerializer(serializers.Serializer):
|
||||
|
||||
|
||||
class SSOSerializer(serializers.Serializer):
|
||||
token = serializers.CharField(max_length=40)
|
||||
token = serializers.CharField(max_length=40)
|
||||
|
||||
|
||||
class EditUserProfileSerializer(serializers.Serializer):
|
||||
avatar = serializers.CharField(max_length=50, required=False, default=None)
|
||||
phone = serializers.CharField(min_length=11, max_length=11, required=False, allow_blank=True, default=None)
|
||||
blog = serializers.URLField(required=False, allow_blank=True, default=None)
|
||||
mood = serializers.CharField(max_length=60, required=False, allow_blank=True, default=None)
|
||||
hduoj_username = serializers.CharField(max_length=30, required=False, allow_blank=True, default=None)
|
||||
bestcoder_username = serializers.CharField(max_length=30, required=False, allow_blank=True, default=None)
|
||||
codeforces_username = serializers.CharField(max_length=30, required=False, allow_blank=True, default=None)
|
||||
@@ -18,11 +18,11 @@ from mail.tasks import send_email
|
||||
|
||||
from .decorators import login_required
|
||||
from .models import User, UserProfile
|
||||
from .serializers import (UserLoginSerializer, UsernameCheckSerializer,
|
||||
UserRegisterSerializer, UserChangePasswordSerializer,
|
||||
EmailCheckSerializer, UserSerializer, EditUserSerializer,
|
||||
from .serializers import (UserLoginSerializer, UserRegisterSerializer,
|
||||
UserChangePasswordSerializer,
|
||||
UserSerializer, EditUserSerializer,
|
||||
ApplyResetPasswordSerializer, ResetPasswordSerializer,
|
||||
SSOSerializer)
|
||||
SSOSerializer, EditUserProfileSerializer)
|
||||
from .decorators import super_admin_required
|
||||
|
||||
|
||||
@@ -300,6 +300,28 @@ def user_index_page(request, username):
|
||||
return render(request, "oj/account/user_index.html", {"user": user, "blog_link": blog_link})
|
||||
|
||||
|
||||
class UserProfileAPIView(APIView):
|
||||
@login_required
|
||||
def put(self, request):
|
||||
serializer = EditUserProfileSerializer(data=request.data)
|
||||
if serializer.is_valid():
|
||||
data = serializer.data
|
||||
user_profile = request.user.userprofile
|
||||
|
||||
if data["avatar"]:
|
||||
user_profile.avatar = data["avatar"]
|
||||
user_profile.mood = data["mood"]
|
||||
user_profile.hduoj_username = data["hduoj_username"]
|
||||
user_profile.bestcoder_username = data["bestcoder_username"]
|
||||
user_profile.codeforces_username = data["codeforces_username"]
|
||||
user_profile.blog = data["blog"]
|
||||
|
||||
user_profile.save()
|
||||
return success_response(u"修改成功")
|
||||
else:
|
||||
return serializer_invalid_response(serializer)
|
||||
|
||||
|
||||
class SSOAPIView(APIView):
|
||||
def post(self, request):
|
||||
serializer = SSOSerializer(data=request.data)
|
||||
|
||||
Reference in New Issue
Block a user