Промежуточная таблица требуется для отношения «многие ко многим» в базе данных, и поскольку большую часть времени вам не нужно хранить дополнительные данные об отношениях, Django просто создает эту таблицу для вас.В вашем случае он создаст таблицу с 3 полями: id, image_id, tag_id.
Если вы хотите указать свою собственную таблицу-посредник, например, если вы хотите сохранить дополнительные данные, вы можете создать модель с ForeignKey для связанных таблиц, а затем определить свой ManyToManyField с аргументом "through", например, так:
class ImageTag(models.Model):
image = models.ForeignKey('Image')
tag = models.ForeignKey('Tag')
extra_data = models.CharField()
class Tag(models.Model):
name = models.CharField()
class Image(models.Model):
name = models.CharField()
tags = models.ManyToManyField(Tag, through=ImageTag)