diff options
author | Andrew Godwin | 2022-11-06 21:30:07 -0700 |
---|---|---|
committer | Andrew Godwin | 2022-11-06 21:30:07 -0700 |
commit | fb6c409a9af5b8a686e977ee2251c359071e0ec3 (patch) | |
tree | 322469694585b766eb623b47955623b3e43c89b1 /users/shortcuts.py | |
parent | 0d5f7e7a891bec4b8af26c2d86d8be0209a3202d (diff) | |
download | takahe-fb6c409a9af5b8a686e977ee2251c359071e0ec3.tar.gz takahe-fb6c409a9af5b8a686e977ee2251c359071e0ec3.tar.bz2 takahe-fb6c409a9af5b8a686e977ee2251c359071e0ec3.zip |
Rework task system and fetching.
I can taste how close follow is to working.
Diffstat (limited to 'users/shortcuts.py')
-rw-r--r-- | users/shortcuts.py | 19 |
1 files changed, 5 insertions, 14 deletions
diff --git a/users/shortcuts.py b/users/shortcuts.py index 167f178..15b864d 100644 --- a/users/shortcuts.py +++ b/users/shortcuts.py @@ -1,10 +1,9 @@ from django.http import Http404 -from django.shortcuts import get_object_or_404 from users.models import Domain, Identity -def by_handle_or_404(request, handle, local=True): +def by_handle_or_404(request, handle, local=True, fetch=False): """ Retrieves an Identity by its long or short handle. Domain-sensitive, so it will understand short handles on alternate domains. @@ -19,15 +18,7 @@ def by_handle_or_404(request, handle, local=True): domain = domain_instance.domain else: username, domain = handle.split("@", 1) - if local: - return get_object_or_404( - Identity.objects.filter(local=True), - username=username, - domain_id=domain, - ) - else: - return get_object_or_404( - Identity, - username=username, - domain_id=domain, - ) + identity = Identity.by_handle(handle, local=local, fetch=fetch) + if identity is None: + raise Http404(f"No identity for handle {handle}") + return identity |