Filter values of a field from a list [...] - Query Django

0
class Grupos(models.Model):
                grupo = models.CharField(max_length=300)
                familia =models.CharField(max_length=300)
                fg = models.CharField(max_length=300)
                status=models.IntegerField(default=1)
                f000=models.CharField(default=0,max_length=5)
                f001=models.CharField(default=0,max_length=5)
                f010=models.CharField(default=0,max_length=5)
                f011=models.CharField(default=0,max_length=5)
                f012=models.CharField(default=0,max_length=5)
                f015=models.CharField(default=0,max_length=5)
                f018=models.CharField(default=0,max_length=5)
                f020=models.CharField(default=0,max_length=5)
                f021=models.CharField(default=0,max_length=5)
                f022=models.CharField(default=0,max_length=5)


            fgod = form1.cleaned_data.get('fg')

            feature= Grupos.objects.filter(fg=fgod)

            listaFeatures=[]

            for item in feature:
                  listaFeatures.append(item.f000)
                  listaFeatures.append(item.f001)
                  listaFeatures.append(item.f010)
                  listaFeatures.append(item.f011)
                  listaFeatures.append(item.f012)
                  listaFeatures.append(item.f015)
                  listaFeatures.append(item.f018)
                  listaFeatures.append(item.f020)
                  listaFeatures.append(item.f021)
                  listaFeatures.append(item.f022)



            for item in listaFeatures:

                if (item!='0'):


                    listaItem =[]

                    listaItem.append(item)

                for i in listaItem:
                        query= Archivos.objects.filter(modelSerial=fgod, linea=station, status=1,feature=i)

fgod is obtained from a drop-down list

        fgod = form1.cleaned_data.get('fg')

Feature filters on the fg field in the Groups model, where the fg field matches the fgod variable selected in the drop-down list

        feature= Grupos.objects.filter(fg=fgod)

A list with name listFeatures is created, in which the values of the following fields are added which are the model Groups f000 ',' f001 ',' f010 ',' f011 ',' f012 ',' f015 ',' f018, 'f020,' f021 ',' f022 '

        listaFeatures=[]

        for item in feature:
              listaFeatures.append(item.f000)
              listaFeatures.append(item.f001)
              listaFeatures.append(item.f010)
              listaFeatures.append(item.f011)
              listaFeatures.append(item.f012)
              listaFeatures.append(item.f015)
              listaFeatures.append(item.f018)
              listaFeatures.append(item.f020)
              listaFeatures.append(item.f021)
              listaFeatures.append(item.f022)

You go through the list called listFeatures

        for item in listaFeatures:

If the item contains a value that is different from '0' the value is added to a new list called listItem

            if (item!='0'):


                listaItem =[]

                listaItem.append(item)

Now I want to filter the "feature" field of the Files model the values that are in the list: listItem; However, in the following way, it only shows me the last value that variable (i) brings.

            for i in listaItem:
                    query= Archivos.objects.filter(modelSerial=fgod, linea=station, status=1,feature=i)

if on the contrary             I put: feature = listItem [i] instead of: feature = i

            for i in listaItem:
                    query= Archivos.objects.filter(modelSerial=fgod, linea=station, status=1,feature=listaItem[i])

shows me the following ERROR: "list indices must be integers or slices, not str"

    
asked by Noel L 27.05.2018 в 05:27
source

0 answers