Instead of get_admin_context(), use context.elevated() to avoid
creating another DB session.
get_admin_context().session creates an independent DB session,
while ctx.elevated().session shares the original context's session.
Generally it's better to avoid using multiple DB sessions in
a single thread as it's a bad idea for various reasons:
- They can yield inconsistent views
- They can ends up with a deadlock