diff --git a/src/calibre/db/lazy.py b/src/calibre/db/lazy.py index 33594767e6..2899f85b27 100644 --- a/src/calibre/db/lazy.py +++ b/src/calibre/db/lazy.py @@ -387,7 +387,8 @@ class ProxyMetadata(Metadata): "Use the explicit methods such as all_field_keys()") def has_key(self, key): - return key in self.all_field_keys() + from calibre.ebooks.metadata.book import STANDARD_METADATA_FIELDS + return key in STANDARD_METADATA_FIELDS or key in ga(self, '_user_metadata') def deepcopy(self, **kwargs): self._unimplemented_exception('deepcopy', add_txt=False) diff --git a/src/calibre/ebooks/metadata/book/base.py b/src/calibre/ebooks/metadata/book/base.py index 1d62c21f99..1e42a10426 100644 --- a/src/calibre/ebooks/metadata/book/base.py +++ b/src/calibre/ebooks/metadata/book/base.py @@ -201,7 +201,7 @@ class Metadata: return iter(object.__getattribute__(self, '_data')) def has_key(self, key): - return key in object.__getattribute__(self, '_data') + return key in STANDARD_METADATA_FIELDS or key in object.__getattribute__(self, '_data')['user_metadata'] def _evaluate_all_composites(self): custom_fields = object.__getattribute__(self, '_data')['user_metadata']