summaryrefslogtreecommitdiffstats
path: root/users/shortcuts.py
diff options
context:
space:
mode:
authorAndrew Godwin2022-11-06 21:30:07 -0700
committerAndrew Godwin2022-11-06 21:30:07 -0700
commitfb6c409a9af5b8a686e977ee2251c359071e0ec3 (patch)
tree322469694585b766eb623b47955623b3e43c89b1 /users/shortcuts.py
parent0d5f7e7a891bec4b8af26c2d86d8be0209a3202d (diff)
downloadtakahe-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.py19
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