Add ability for custom calculated attributes for exporting

This commit is contained in:
JonnyWong16 2020-08-03 19:51:50 -07:00
parent 55100dfb7a
commit d3704fcee6
No known key found for this signature in database
GPG key ID: B1F1F9807184697A

View file

@ -1172,10 +1172,16 @@ def get_attrs_to_dict(obj, attrs):
d = {}
for attr, sub in attrs.items():
no_attr = False
if isinstance(obj, dict):
value = obj.get(attr, None)
else:
value = getattr(obj, attr, None)
try:
value = getattr(obj, attr)
except AttributeError:
no_attr = True
value = None
if callable(value):
value = value()
@ -1194,7 +1200,10 @@ def get_attrs_to_dict(obj, attrs):
if isinstance(value, list):
value = [sub(o) for o in value]
else:
value = sub(value)
if no_attr:
value = sub(obj)
else:
value = sub(value)
d[attr] = value