Fixes bug that uses edition remote_id for work

This commit is contained in:
Mouse Reeve 2020-05-09 13:11:14 -07:00
parent 277c1a80fd
commit 7220a17840
2 changed files with 7 additions and 5 deletions

View file

@ -10,11 +10,13 @@ from fedireads.tasks import app
def get_or_create_book(value, key='id', connector_id=None):
''' pull up a book record by whatever means possible '''
try:
book = models.Book.objects.select_subclasses().get(**{key: value})
book = models.Book.objects.select_subclasses().filter(
**{key: value}
).first()
if book:
if not isinstance(book, models.Edition):
return book.default_edition
return book
except models.Book.DoesNotExist:
pass
if key == 'remote_id':
book = get_by_absolute_id(value, models.Book)

View file

@ -71,7 +71,7 @@ class Connector(AbstractConnector):
with transaction.atomic():
# create both work and a default edition
work_key = edition_data.get('url')
work_key = work_data.get('url')
work = self.create_book(work_key, work_data, models.Work)
ed_key = edition_data.get('url')