Muneeba
Muneeba

Reputation: 47

how can I fetch the specific ids data( multiple ids are stored in list) using Django

I want to fetch data of multiple ids which is provided from the User Interface and these ids are stored in a list. So how can I retrieve the data of these ids using Django ORM? When I try the following approach It returned nothing

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)

By applying the below-mentioned approach I can get only one id-data which is specified by typing the index value. But I want to get the data of all ids which are stored in the list so how can I get my required output by using 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)

Upvotes: 0

Views: 399

Answers (2)

Ashraful Islam
Ashraful Islam

Reputation: 571

Try:

list_of_ids = random.sample(range(1, max_id),3)

sub = Sub_Topics.objects.filter(id__in=list_of_ids).values('id','subtopic')

Upvotes: 0

lucutzu33
lucutzu33

Reputation: 3700

You can use filter(pk__in=pk).

Upvotes: 2

Related Questions