title: instance.save() is not saving the model in ListSerializer Django Rest Framework
body: <p>In Django Rest Framework ListSerializer when I want to save the validated data to the database by calling instance.save() I'm getting an error saying <strong>queryset object has no attribute save</strong>.</p>
  
  <p>ListSerializer class:</p>
  
  <pre><code>class NoAccessDetailsListSerializer(serializers.ListSerializer):
  
      # This will be called when there is list of objects
      #here instance is list of queryset and validated_data is the list of json object
      def update(self, instance, validated_data):
  
          ret = []
          for index, data in enumerate(validated_data):
  
              #checking if row is already chosen
              if(instance[index].row_chosen):
  
                  # do not update the info to db
                  # just append the data to ret
                  ret.append(instance[index])
  
              else:
                  instance.id = instance[index].id
                  instance.row_chosen = validated_data[index].get(
                      'row_chosen')
                  instance.user_working = validated_data[index].get(
                      'user_working')
  
                  ret.append(instance)
  
                  instance.save()
  
          return ret
  </code></pre>
  
  <p>Serializer Class</p>
  
  <pre><code>class NoAccessDetailsSerializer(serializers.ModelSerializer):
  
  
      id = serializers.IntegerField(read_only=False)
  
      class Meta:
          model = NoAccessDetails
          list_serializer_class = NoAccessDetailsListSerializer
          fields = ("id", "row_chosen",
                    "user_working")
  
      def update(self, instance, validated_data):
          instance.id = instance.id
          instance.row_chosen = validated_data.get(
              'row_chosen')
          instance.user_working = validated_data.get(
              'user_working ')
  
          instance.save()
          return instance
  </code></pre>
  
  <p>Basically in ListSerializer I'm checking if the row is chosen already in the DB. If True then I just append the instance data to a dictionary else I want to update the data to the DB and append the updated data to a list and return it.</p>
  
  <p>Here in the ListSerializer I'm passing filtered queryset from the APIView class as instance and validated_data is a list of validated data.</p>
  
  <p>Sample JSON data which I will pass to the APIView class:</p>
  
  <pre><code>[
          {
              "id": 1,
              "row_chosen": true,
              "user_working": "John"
          },
          {
              "id": 1,
              "row_chosen": true,
              "user_working": "David"
          },
  ]
  </code></pre>
  
  <p>When I pass the JSON data, it will properly filter out the rows from DB and pass the queryset as instance and JSON data to the serializer class.</p>
  
  <pre><code># here list_of_id is the ids which are there in the JSON object. i.e [1,2]
  
  filtered_id_data= NoAccessDetails.objects.filter(
                  id__in=list_of_id)
  
              serializer = NoAccessDetailsSerializer(filtered_id_data,
                                                     data=request.data,
                                                     many=True,
                                                     )
  
  </code></pre>
  
  <p>The ListSerializer update() is working but when it runs else block and tries to update the data it gives me an error <strong>queryset object has no attribute save</strong>. Whereas in the serializer's update() it runs the instance.save() and updates the data for the single object. I'm not sure where I'm making the mistake.
  Please help me with this.</p>
  
  <p><strong>Update:</strong></p>
  
  <p>I changed instance.save() to instance[index].save() in ListSerializer class. Now the <strong>queryset object has no attribute save</strong> has been fixed. Even though when I use instance[index].save() I'm unable to save the data in the data base.</p>
  
  <p><strong>Models:</strong></p>
  
  <pre><code>class NoAccessDetails(models.Model):
      20 CharFields
      ...
      ...
      user_working = models.ForeignKey(
          UserProfile, on_delete=models.CASCADE, blank=True, null=True)
      row_chosen = models.BooleanField(default=False)
  
  class UserProfile(models.Model):
      user_id = models.CharField(primary_key=True, max_length=10)
      user_name = models.CharField(max_length=100)
      user_email = models.EmailField()
      is_admin = models.BooleanField(default=False)
  
  </code></pre>
  
  <p>Here in the NoAccessDetail model, I've kept user_working null true because the data to this model will be coming from a different source. Initially while importing the data the user_working will be null. While updating the data from an API call, I'm validating the JSON data.</p>