serialize baserouterproxy correctly
This commit is contained in:
parent
d151bc7888
commit
3fc1bfa5ed
1 changed files with 3 additions and 1 deletions
|
@ -26,11 +26,13 @@ def make_serializable(values: Any):
|
|||
key: make_serializable(val)
|
||||
for key, val in values.items()
|
||||
}
|
||||
from c3nav.routing.router import BaseRouterProxy
|
||||
if isinstance(values, (list, tuple, set, frozenset)):
|
||||
from c3nav.routing.router import BaseRouterProxy
|
||||
if values and isinstance(next(iter(values)), (Model, BaseRouterProxy)):
|
||||
return type(values)(val.pk for val in values)
|
||||
return type(values)(make_serializable(val) for val in values)
|
||||
if isinstance(values, BaseRouterProxy):
|
||||
return values.pk
|
||||
if isinstance(values, Promise):
|
||||
# This is needed for lazy attributes that evaluate to `None` to be serialized properly.
|
||||
# Without this `None` is returned as the string 'None'.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue