未能在程序中成功地将Django工作人员标志打开

2024-06-23 02:38:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我从数据库中获取用户,然后is_staff=True保存它。但它却无法保存。你知道吗

为什么我不能用这个代码将用户保存为实用的职员?你知道吗

def approve_staff(self,request,username,):
    if request.user.is_superuser:
        u=User.objects.filter(username=username)
        if u.exists():
            u[0].is_staff=True;
            u[0].save() #
            print u[0],u[0].is_staff
    from django.http import HttpResponseRedirect
    return HttpResponseRedirect(request.META.get('HTTP_REFERER'))

Tags: 代码用户self数据库trueifisrequest
2条回答

并不是说它一定能解决您的问题,但是获得单个记录的Django方法是Queryset.get

    try:
        u=User.objects.get(username=username)
    except User.DoesNotExist:
        raise Http404() 
    u.is_staff=True;
    u.save() #
    print u, u.is_staff

您的视图也应该只接受POST请求。你知道吗

你就不能做一个

User.objects.filter(username=username).update(is_staff=True)

它将为过滤器找到的每个对象更新数据(无需调用save())。你知道吗

相关问题 更多 >