diff --git a/avatar/templatetags/avatar_tags.py b/avatar/templatetags/avatar_tags.py
index 59b4b8b..2c7e392 100644
--- a/avatar/templatetags/avatar_tags.py
+++ b/avatar/templatetags/avatar_tags.py
@@ -94,7 +94,7 @@ def primary_avatar(user, width=settings.AVATAR_DEFAULT_SIZE, height=None):
else:
kwargs["height"] = height
- url = reverse("avatar_render_primary", kwargs=kwargs)
+ url = reverse("avatar:render_primary", kwargs=kwargs)
return """
""" % (
url,
width,
diff --git a/avatar/urls.py b/avatar/urls.py
index 9a043f8..12f7472 100644
--- a/avatar/urls.py
+++ b/avatar/urls.py
@@ -1,19 +1,24 @@
-from django.urls import re_path
+from django.urls import path
from avatar import views
+# For reversing namespaced urls
+# https://docs.djangoproject.com/en/4.1/topics/http/urls/#reversing-namespaced-urls
+app_name = "avatar"
+
urlpatterns = [
- re_path(r"^add/$", views.add, name="avatar_add"),
- re_path(r"^change/$", views.change, name="avatar_change"),
- re_path(r"^delete/$", views.delete, name="avatar_delete"),
- re_path(
- r"^render_primary/(?P[\w\d\@\.\-_]+)/(?P[\d]+)/$",
+ path("add/", views.add, name="add"),
+ path("change/", views.change, name="change"),
+ path("delete/", views.delete, name="delete"),
+ # https://docs.djangoproject.com/en/4.1/topics/http/urls/#path-converters
+ path(
+ "render_primary///",
views.render_primary,
- name="avatar_render_primary",
+ name="render_primary",
),
- re_path(
- r"^render_primary/(?P[\w\d\@\.\-_]+)/(?P[\d]+)/(?P[\d]+)/$",
+ path(
+ "render_primary////",
views.render_primary,
- name="avatar_render_primary",
+ name="render_primary",
),
]
diff --git a/tests/tests.py b/tests/tests.py
index 79d6874..742e816 100644
--- a/tests/tests.py
+++ b/tests/tests.py
@@ -43,7 +43,7 @@ class AssertSignal:
def upload_helper(o, filename):
f = open(os.path.join(o.testdatapath, filename), "rb")
response = o.client.post(
- reverse("avatar_add"),
+ reverse("avatar:add"),
{
"avatar": f,
},
@@ -165,7 +165,7 @@ class AvatarTests(TestCase):
def test_default_url(self):
response = self.client.get(
reverse(
- "avatar_render_primary",
+ "avatar:render_primary",
kwargs={
"user": self.user.username,
"width": 80,
@@ -196,7 +196,7 @@ class AvatarTests(TestCase):
receiver = AssertSignal()
avatar_deleted.connect(receiver)
response = self.client.post(
- reverse("avatar_delete"),
+ reverse("avatar:delete"),
{
"choices": [avatar[0].id],
},
@@ -216,7 +216,7 @@ class AvatarTests(TestCase):
primary = get_primary_avatar(self.user)
oid = primary.id
self.client.post(
- reverse("avatar_delete"),
+ reverse("avatar:delete"),
{
"choices": [oid],
},
@@ -229,7 +229,7 @@ class AvatarTests(TestCase):
def test_change_avatar_get(self):
self.test_normal_image_upload()
- response = self.client.get(reverse("avatar_change"))
+ response = self.client.get(reverse("avatar:change"))
self.assertEqual(response.status_code, 200)
self.assertIsNotNone(response.context["avatar"])
@@ -239,7 +239,7 @@ class AvatarTests(TestCase):
old_primary = Avatar.objects.get(user=self.user, primary=True)
choice = Avatar.objects.filter(user=self.user, primary=False)[0]
response = self.client.post(
- reverse("avatar_change"),
+ reverse("avatar:change"),
{
"choice": choice.pk,
},