Как разрулить циклы или как не впасть в рекурсию?
Пахнет пхп
Удаление, без csrf, без forms
0. Перечитай как работает Form
1. Что мешает прикрепить картинки к книге?class Book(models.Model):
    title = models.CharField(max_length=255)
    text = models.TextField()

class Images(models.Model):
   book = models.ForeignKey(Book, related_name='book_images')
   image = models.ImageField(upload_to=file_uploads_to)
   alt = models.CharField(max_length=255)
если картинки дублируютсяclass Book(models.Model):
    title = models.CharField(max_length=255)
    text = models.TextField()

class Images(models.Model):
   book = models.ManyToMany(Book, related_name='book_images')
   image = models.ImageField(upload_to=file_uploads_to)
   alt = models.CharField(max_length=255)
2. Что мешает отфильтровать картинки по ид и удалить скопом?Images.filter(pk__in=[id1, id2,...]).detele()
Прошу прощения за резкость выражений, но это дичайший говнокод. 
Не могу сказать где ошибка, потому что логика работы совершенно не очевидна и не понятно, что вы пытаетесь сделать.
Вот тут например код после else не выполнится ни при каких условиях. for i in request.GET:    
    if item.id == i:
        continue
    if item.id !=i and item.id in request.GET.keys():
        continue
    if item.id !=i and item.id not in request.GET.keys():
        book_image.delete()
    else:
        # пропустим try
        image = Image.obejcts.get(id=i)
        book_img = BookImages(book=book, image=image)
        book_img.save()
Советую вам хорошо отдохнуть, после чего перечитать какую-нибудь книгу по python, например эту, потом документацию по джанго, после чего вы перестанете задавать такие вопросы.