django 用户与组的关系
1、添加组
from django.http import JsonResponse from django.contrib.auth.models import Group def add_group(request): if request.method == "POST": name = request.POST.get('name') try: group = Group() group.name = name group.is_enable = True # 该字段为因业务需要自添加的字段 group.save() result = {'result': 'true'} return JsonResponse(result) except Exception, e: print Exception, ":", e result = {'result': 'false'} return JsonResponse(result) else: result = {'result': 'false'} return JsonResponse(result)
2、添加用户与组的关系
def add_user_group_rel(request): if request.method == 'POST': try: group_id = request.POST.get('group_id') user_id = request.POST.get('user_id') group_info = Group.objects.get(id=group_id) User.objects.get(id=user_id).groups.add(group_info) result = {'result': 'true'} return JsonResponse(result) except Exception, e: print Exception, ":", e result = {'result': 'false'} return JsonResponse(result) else: result = {'result': '请求错误!'} return JsonResponse(result)
3、删除用户与组的关系
def del_user_group_rel(request): if request.method == 'POST': try: group_id = request.POST.get('group_id') user_id = request.POST.get('user_id') group_info = Group.objects.get(id=group_id) User.objects.get(id=user_id).groups.remove(group_info) result = {'result': 'true'} return JsonResponse(result) except Exception, e: print Exception, ":", e result = {'result': 'false'} return JsonResponse(result) else: result = {'result': '请求错误!'} return JsonResponse(result)
4、获取组有哪些用户
def __default(obj): if isinstance(obj, datetime): return obj.strftime('%Y-%m-%dT%H:%M:%S') elif isinstance(obj, date): return obj.strftime('%Y-%m-%d') else: raise TypeError('%r is not JSON serializable' % obj) # 获得组里有哪些成员 @csrf_exempt def group_user_info(request): if request.method == 'GET': try: group_id = request.GET.get('group_id') group_info = Group.objects.get(id=group_id) group_detail = [] for row in group_info.user_set.all(): group_detail.append({'username': row.username, 'id': row.id, 'date_joined': row.date_joined}) json_data = simplejson.dumps(group_detail, default=__default) # 转成json格式 return HttpResponse(json_data, content_type="application/json") except Exception, e: print Exception, ":", e result = {'result': 'false'} return JsonResponse(result) else: result = {'result': '请求错误!'} return JsonResponse(result)
5、获取一个用户有哪些组
def __default(obj): if isinstance(obj, datetime): return obj.strftime('%Y-%m-%dT%H:%M:%S') elif isinstance(obj, date): return obj.strftime('%Y-%m-%d') else: raise TypeError('%r is not JSON serializable' % obj) # 获得一个成员有哪些小组 @csrf_exempt def get_user_group(request): if request.method == 'GET': try: user_id = request.GET.get('user_id') current_user_set = User.objects.filter(id=user_id) current_group_set = Group.objects.filter(user=current_user_set) group_detail = [] for row in current_group_set: group_detail.append({'name': row.name}) json_data = simplejson.dumps(group_detail, default=__default) # 转成json格式 return HttpResponse(json_data, content_type="application/json") except Exception, e: print Exception, ":", e result = {'result': 'false'} return JsonResponse(result) else: result = {'result': '请求错误!'} return JsonResponse(result)