diff --git a/beets/dbcore/db.py b/beets/dbcore/db.py index 524ee0b00..409ecc9af 100755 --- a/beets/dbcore/db.py +++ b/beets/dbcore/db.py @@ -56,10 +56,11 @@ class FormattedMapping(Mapping): are replaced. """ - def __init__(self, model, for_path=False): + def __init__(self, model, for_path=False, compute_keys=True): self.for_path = for_path self.model = model - self.model_keys = model.keys(True) + if compute_keys: + self.model_keys = model.keys(True) def __getitem__(self, key): if key in self.model_keys: diff --git a/beets/library.py b/beets/library.py index 5e6a0ec8a..f9b5a2ab4 100644 --- a/beets/library.py +++ b/beets/library.py @@ -375,9 +375,10 @@ class FormattedItemMapping(dbcore.db.FormattedMapping): """ def __init__(self, item, for_path=False): - super(FormattedItemMapping, self).__init__(item, for_path) # We treat album and item keys specially here, # so exclude transitive album keys from the model's keys. + super(FormattedItemMapping, self).__init__(item, for_path, + compute_keys=False) self.model_keys = item.keys(computed=True, with_album=False) self.item = item