【问题标题】:how can I fetch the specific ids data( multiple ids are stored in list) using Django如何使用 Django 获取特定的 id 数据(多个 id 存储在列表中)
【发布时间】:2021-08-14 00:04:38
【问题描述】:

我想获取从用户界面提供的多个 id 的数据,这些 id 存储在一个列表中。那么如何使用 Django ORM 检索这些 id 的数据呢? 当我尝试以下方法时它什么也没返回

def selectassess(request):
    if request.method=='POST':
        assess=request.POST.getlist("assess")
        quesno=request.POST.getlist("quesno")
        subid=request.POST.getlist("subid")
        print(quesno,subid)
        
        print(assess)
        max_id = Sub_Topics.objects.all().aggregate(max_id=Max("id"))['max_id']
        print(max_id)
        
        pk = random.sample(range(1, max_id),3)
        
        subss=Sub_Topics.objects.raw("Select * from Sub_Topics where id=%s",(str(pk),))
        
        context4={
            'subss':subss,
            

        }
        print(pk)
        return render(request,"assessment.html",context)

通过应用下面提到的方法,我只能获得一个通过键入索引值指定的 id-data。但是我想获取存储在列表中的所有 id 的数据,那么如何使用 Django ORM 获得所需的输出

def selectassess(request):
    if request.method=='POST':
        assess=request.POST.getlist("assess")
        quesno=request.POST.getlist("quesno")
        subid=request.POST.getlist("subid")
        print(quesno,subid)
        print("youuuuu") 
        print(assess)
        max_id = Sub_Topics.objects.all().aggregate(max_id=Max("id"))['max_id']
        print(max_id)
        
        pk = random.sample(range(1, max_id),3)
        sub = Sub_Topics.objects.filter(pk=pk[0]).values('id','subtopic')
        
        
        context4={
            
            'sub':sub,

        }
        print(pk)
        return render(request,"assessment.html",context4)

【问题讨论】:

    标签: mysql django django-views django-orm


    【解决方案1】:

    试试:

    list_of_ids = random.sample(range(1, max_id),3)
    
    sub = Sub_Topics.objects.filter(id__in=list_of_ids).values('id','subtopic')
    

    【讨论】:

      【解决方案2】:

      您可以使用filter(pk__in=pk)

      【讨论】:

        猜你喜欢
        • 2022-01-18
        • 1970-01-01
        • 1970-01-01
        • 2019-03-11
        • 2017-03-15
        • 2019-02-12
        • 2022-01-03
        • 2015-10-15
        • 1970-01-01
        相关资源
        最近更新 更多