From 891fe808f6be9cddeaf252e68037aa5e7d05df97 Mon Sep 17 00:00:00 2001 From: ajurna Date: Tue, 26 May 2020 11:37:18 +0100 Subject: [PATCH] fixed duplicate comicbook records in scan_comics.py --- comic/management/commands/scan_comics.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/comic/management/commands/scan_comics.py b/comic/management/commands/scan_comics.py index a9a8134..892ba19 100644 --- a/comic/management/commands/scan_comics.py +++ b/comic/management/commands/scan_comics.py @@ -4,7 +4,7 @@ from loguru import logger from django.core.management.base import BaseCommand -from comic.models import ComicBook, Directory, Setting +from comic.models import ComicBook, Directory, Setting, ComicStatus class Command(BaseCommand): @@ -58,7 +58,14 @@ class Command(BaseCommand): logger.info(f"Scanning File {file}") try: if directory: - book = ComicBook.objects.get(file_name=file, directory=directory) + try: + book = ComicBook.objects.get(file_name=file, directory=directory) + except ComicBook.MultipleObjectsReturned: + logger.error(f'Duplicate Record {file}') + books = ComicBook.objects.filter(file_name=file, directory=directory).order_by('id') + book = books.first() + extra_books = books.exclude(id=book.id) + extra_books.delete() if book.version == 0: book.version = 1 book.save()