From c8388c8a8fecebc8c4050ca03aff4b2ef8699e9e Mon Sep 17 00:00:00 2001 From: hohoTT <609029365@qq.com> Date: Tue, 11 Aug 2015 14:47:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0group/views=E4=B8=AD=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E5=92=8C=E4=BF=AE=E6=94=B9=E5=B0=8F=E7=BB=84=E6=97=B6?= =?UTF-8?q?=E5=B0=8F=E7=BB=84=E5=90=8D=E5=AD=98=E5=9C=A8=E6=97=B6=E7=9A=84?= =?UTF-8?q?=E5=88=A4=E6=96=AD=EF=BC=8C=E4=BB=A5=E5=8F=8A=E5=8A=A0=E5=85=A5?= =?UTF-8?q?=E5=B0=8F=E7=BB=84=E6=97=B6=E9=87=8D=E5=A4=8D=E5=8A=A0=E5=85=A5?= =?UTF-8?q?=E5=92=8C=E8=AF=B7=E6=B1=82=E5=8A=A0=E5=85=A5=E6=97=B6=E7=9A=84?= =?UTF-8?q?=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- group/views.py | 41 ++++++++++++++++++++++++++++------------- 1 file changed, 28 insertions(+), 13 deletions(-) diff --git a/group/views.py b/group/views.py index cd8ac54f..54c1ec23 100644 --- a/group/views.py +++ b/group/views.py @@ -1,5 +1,6 @@ # coding=utf-8 from django.shortcuts import render +from django.db import IntegrityError from rest_framework.views import APIView @@ -48,10 +49,13 @@ class GroupAdminAPIView(APIView, GroupAPIViewBase): serializer = CreateGroupSerializer(data=request.data) if serializer.is_valid(): data = serializer.data - group = Group.objects.create(name=data["name"], - description=data["description"], - join_group_setting=data["join_group_setting"], - admin=request.user) + try: + group = Group.objects.create(name=data["name"], + description=data["description"], + join_group_setting=data["join_group_setting"], + admin=request.user) + except IntegrityError: + return error_response(u"小组名已经存在") return success_response(GroupSerializer(group).data) else: return serializer_invalid_response(serializer) @@ -70,10 +74,14 @@ class GroupAdminAPIView(APIView, GroupAPIViewBase): group = self.get_group(request, data["group_id"]) except Group.DoesNotExist: return error_response(u"小组不存在") - group.name = data["name"] - group.description = data["description"] - group.join_group_setting = data["join_group_setting"] - group.save() + try: + group.name = data["name"] + group.description = data["description"] + group.join_group_setting = data["join_group_setting"] + group.save() + except IntegrityError: + return error_response(u"小组名已经存在") + return success_response(GroupSerializer(group).data) else: return serializer_invalid_response(serializer) @@ -133,8 +141,12 @@ class GroupMemberAdminAPIView(APIView, GroupAPIViewBase): def join_group(user, group): - return UserGroupRelation.objects.create(user=user, group=group) - + try: + UserGroupRelation.objects.create(user=user, group=group) + return True + except IntegrityError: + return False + class JoinGroupAPIView(APIView): @login_required @@ -149,12 +161,15 @@ class JoinGroupAPIView(APIView): data = serializer.data try: group = Group.objects.get(id=data["group_id"]) - except Group.DesoNotExist: + except Group.DoesNotExist: return error_response(u"小组不存在") if group.join_group_setting == 0: - join_group(request.user, group) - return success_response(u"你已经成功的加入该小组") + if join_group(request.user, group): + return success_response(u"你已经成功的加入该小组") + else: + return error_response(u"你已经是小组成员了") elif group.join_group_setting == 1: + JoinGroupRequest.objects.create(user=request.user, group=group, message=data["message"]) return success_response(u"申请提交成功,请等待审核") elif group.join_group_setting == 2: return error_response(u"该小组不允许任何人加入")