title: ValueError Uploading Multiple FIles to Model with M2M Field
body: <p>I have a Django 3.2, python 3.6 website. I am having issues uploading multiple files to a model that also has a M2M field. I get an error in the save_related method at the indicated line:</p>
  <p>ValueError: &quot;&lt;Image: title&gt;&quot; needs to have a value for field &quot;image_id&quot; before this many-to-many relationship can be used.</p>
  <p>I have used this same method to upload multiple files to models without an M2M field, so I am not sure where I am going wrong.</p>
  <p>models.py</p>
  <pre><code>class Tags(models.Model):
      tag_id = models.AutoField(primary_key=True)
      tag_name = models.CharField(max_length=255)    
  
  class Image(models.Model):
      image_id = models.AutoField(primary_key=True)
      title = models.CharField(max_length=255)
      description = models.TextField()
      original_image = models.ImageField('original_image', upload_to=settings.ORIGINAL_IMAGE_PATH,)
      exif_data = models.JSONField(default=dict)
      computed_sha256 = models.CharField(editable=False, max_length=64, default=&quot;foobar&quot;)
      tags = models.ManyToManyField(Tags, blank=True)
  </code></pre>
  <p>admin.py</p>
  <pre><code>class ImageForm(forms.ModelForm):
      original_image = forms.ImageField(widget=forms.FileInput(attrs={'multiple': True}))
  
  class ImageAdmin(admin.ModelAdmin):
      form = ImageForm
      
      class Meta:
          model = Image
          fields = '__all__'  
      
      def save_related(self, request, form, *args, **kwargs):
          tags = form.cleaned_data.pop('tags', ())
          image = form.instance
          for tag in tags:
              image.tags.add(tag)   # error occurs here
          super(ImageAdmin, self).save_related(request, form, *args, **kwargs)    
      
      def save_model(self, request, obj, form, change):
          if form.is_valid():
              if not change:
                  # Uploading one or more images))
                  files = request.FILES.getlist('original_image')
                  for f in files: 
                      image = Image()
                      if &quot;Title&quot; not in form.cleaned_data:
                          form.cleaned_data['Title'] = clean_title(f.name)
                      image.computed_sha256 = image_processing_utils.compute_sha256(f)
                      image.original_image = f
                      image.description = form.cleaned_data['description']
                      image.exif_data = image_processing_utils.read_exif_data(f)
                      image.save()
              else:
                  pass
  </code></pre>