django 组关系 随笔

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)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值