summaryrefslogtreecommitdiff
path: root/ishtar_common/utils.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2022-06-08 17:20:31 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2022-06-08 17:20:31 +0200
commit3091cfde5a536750bfeedcbe12a8891f898eb159 (patch)
treea97c42b07c2f79dbb6c2926b64d9ad1a6e2aabc8 /ishtar_common/utils.py
parent8e921087fa389d878c918db06190d91a494845b5 (diff)
downloadIshtar-3091cfde5a536750bfeedcbe12a8891f898eb159.tar.bz2
Ishtar-3091cfde5a536750bfeedcbe12a8891f898eb159.zip
ID: allow use "data" field to generate ID
Diffstat (limited to 'ishtar_common/utils.py')
-rw-r--r--ishtar_common/utils.py14
1 files changed, 10 insertions, 4 deletions
diff --git a/ishtar_common/utils.py b/ishtar_common/utils.py
index bad6399df..5bd5f4ec5 100644
--- a/ishtar_common/utils.py
+++ b/ishtar_common/utils.py
@@ -1943,10 +1943,16 @@ def _update_gen_id_dct(item, dct, initial_key, fkey=None, filters=None):
return
obj = item
for k in fkey.split("__"):
- try:
- obj = getattr(obj, k)
- except (ObjectDoesNotExist, AttributeError):
- obj = None
+ if isinstance(obj, dict):
+ if k not in obj:
+ obj = None
+ break
+ obj = obj[k]
+ else:
+ try:
+ obj = getattr(obj, k)
+ except (ObjectDoesNotExist, AttributeError):
+ obj = None
if hasattr(obj, "all") and hasattr(obj, "count"): # query manager
if not obj.count():
break