BugFix: Clean cached field, if no data is available

This commit is contained in:
Dirk Alders 2020-01-31 08:23:10 +01:00
parent 3061da63ad
commit 983fa59231

View File

@ -424,14 +424,16 @@ class Item(models.Model):
for key in self.MODEL_TO_MEDIA_DATA:
value = data.get(key)
if key == media.metadata.KEY_GPS: # Split GPS data in lon and lat
if value is not None:
for k in self.MODEL_TO_MEDIA_DATA[key]:
setattr(self, self.MODEL_TO_MEDIA_DATA[key][k], value[k])
for k in self.MODEL_TO_MEDIA_DATA[key]:
value_k = value[k] if value is not None else None
setattr(self, self.MODEL_TO_MEDIA_DATA[key][k], value_k)
else:
if key == media.metadata.KEY_TIME: # convert time to datetime
if data.get(media.metadata.KEY_TIME_IS_SUBSTITUTION) and self.type == TYPE_IMAGE: # don't use time substitution for images
break
value = datetime.datetime.fromtimestamp(value, tz=datetime.timezone.utc)
if value is not None:
if key == media.metadata.KEY_TIME: # convert time to datetime
if data.get(media.metadata.KEY_TIME_IS_SUBSTITUTION) and self.type == TYPE_IMAGE: # don't use time substitution for images
value = None
else:
value = datetime.datetime.fromtimestamp(value, tz=datetime.timezone.utc)
setattr(self, self.MODEL_TO_MEDIA_DATA[key], value)
def __update_other_file_data__(self, full_path):