add account view for preview

This commit is contained in:
Chiaki 2017-04-16 10:15:26 +08:00
parent df8781b9b3
commit 8a68ad7ac9
3 changed files with 58 additions and 0 deletions

10
account/urls/user.py Normal file
View File

@ -0,0 +1,10 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from django.conf.urls import url
from ..views.user import UserProfileAPI
urlpatterns = [
url(r"^profile$", UserProfileAPI.as_view(), name="user_profile_api"),
]

47
account/views/user.py Normal file
View File

@ -0,0 +1,47 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from django.utils.translation import ugettext as _
from utils.api import APIView, validate_serializer
from ..decorators import login_required
from ..serializers import EditUserSerializer, UserSerializer
# class UserInfoAPI(APIView):
# @login_required
# def get(self, request):
# """
# Return user info api
# """
# return self.success(UserSerializer(request.user).data)
class UserProfileAPI(APIView):
@login_required
def get(self, request):
"""
Return user info api
"""
return self.success(UserSerializer(request.user).data)
@validate_serializer(EditUserSerializer)
@login_required
def put(self, request):
data = request.data
user_profile = request.user.userprofile
if data["avatar"]:
user_profile.avatar = data["avatar"]
else:
user_profile.mood = data["mood"]
user_profile.blog = data["blog"]
user_profile.school = data["school"]
user_profile.student_id = data["student_id"]
user_profile.phone_number = data["phone_number"]
user_profile.major = data["major"]
# Timezone & language 暂时不加
user_profile.save()
return self.success(_("Succeeded"))

View File

@ -3,6 +3,7 @@ from django.conf.urls import include, url
urlpatterns = [ urlpatterns = [
url(r"^api/", include("account.urls.oj")), url(r"^api/", include("account.urls.oj")),
url(r"^api/admin/", include("account.urls.admin")), url(r"^api/admin/", include("account.urls.admin")),
url(r"^api/account/", include("account.urls.user")),
url(r"^api/admin/", include("announcement.urls.admin")), url(r"^api/admin/", include("announcement.urls.admin")),
url(r"^api/", include("conf.urls.oj")), url(r"^api/", include("conf.urls.oj")),
url(r"^api/admin/", include("conf.urls.admin")), url(r"^api/admin/", include("conf.urls.admin")),