If语句在查询集中提供错误的输出

时间:2018-01-03 14:40:59

标签: django

当我将request.method == 'POST' and selectedaccesslevel == '#'显示为<QuerySet ['S00009']>并将其写入数据库时​​,我收到的查询集输出不正确。

我相信我应该使用get,因为我期待一个值,但是如何过滤我的coid = owner.coid.coid并提供值?级别?

我正在寻找我的datareducecode输出为'S00009'而不是<QuerySet ['S00009']>.我该如何做到这一点?以下是我的看法......

def submitted(request):



    owner = User.objects.get (formattedusername=request.user.formattedusername)
    checkedlist = request.POST.getlist('report_id')
    print (f"checkedlist on submitted:{checkedlist}")
    access_request_date = timezone.now()

    coid = User.objects.filter(coid = request.user.coid.coid).filter(formattedusername=request.user.formattedusername)
    datareducecode = OrgLevel.objects.distinct().filter(coid=request.user.coid.coid)
#    facilitycfo =  QvDatareducecfo.objects.filter(dr_code__exact = coid, active = 1, cfo_type = 1).values_list('cfo_ntname', flat = True)
#    divisioncfo =  QvDatareducecfo.objects.filter(dr_code__exact = coid, active = 1, cfo_type = 2).values_list('cfo_ntname', flat = True)
#    print(facilitycfo)
#    print(divisioncfo)
    selectedaccesslevel = request.POST.get('accesslevelid')
    print (f"accesslevel:{selectedaccesslevel}")

    selectedphi = request.POST.get('phi')
    print (f"phi:{selectedphi}")

    print (owner.coid.coid)

    if request.method == 'POST' and selectedaccesslevel == '3':
        datareducecode = OrgLevel.objects.filter(coid__exact = owner.coid.coid).values_list('slevel', flat = True)
        print (datareducecode)
        if request.method == 'POST' and selectedaccesslevel == '4':
            datareducecode = OrgLevel.objects.filter(coid__exact = owner.coid.coid).values_list('blevel', flat = True)
            print (datareducecode)
            if request.method == 'POST' and selectedaccesslevel == '5':
                datareducecode = OrgLevel.objects.filter(coid__exact = owner.coid.coid).values_list('rlevel', flat = True)
                print (datareducecode)
                if request.method == 'POST' and selectedaccesslevel == '6':
                    datareducecode = OrgLevel.objects.filter(coid__exact = owner.coid.coid).values_list('dlevel', flat = True)
                    print (datareducecode)
                    if request.method == 'POST' and selectedaccesslevel == '7':
                        datareducecode = OrgLevel.objects.filter(coid__exact = owner.coid.coid).values_list('f"Z{Coid}"', flat = True)
                        print (datareducecode)
    else:
        datareducecode = 'No Match on Coid'
        print (datareducecode)

    for i in checkedlist:
        requestsave = QVFormAccessRequest(ntname = owner.formattedusername, first_name = owner.first_name, last_name = owner.last_name, coid = owner.coid.coid, facility = owner.facility, title = owner.title
                                          ,report_id = i, accesslevel_id = selectedaccesslevel, phi = selectedphi , access_beg_date = access_request_date, datareducecode = datareducecode )
        requestsave.save()

#    print (datareducecode)
    return JsonResponse({'is_success':True})

1 个答案:

答案 0 :(得分:0)

所以这似乎可以解决问题:

list(datareducecode)[0]