Skip to content

Commit b1e50db

Browse files
Use Role.reverse in get_success_url. (#87)
Ensures `lookup_fields` is used correctly.
1 parent 4efd252 commit b1e50db

File tree

2 files changed

+18
-4
lines changed

2 files changed

+18
-4
lines changed

src/neapolitan/views.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -296,11 +296,9 @@ def get_success_url(self):
296296
% self.__class__.__name__
297297
)
298298
if self.role == Role.DELETE:
299-
success_url = reverse(f"{self.url_base}-list")
299+
success_url = Role.LIST.reverse(self)
300300
else:
301-
success_url = reverse(
302-
f"{self.url_base}-detail", kwargs={"pk": self.object.pk}
303-
)
301+
success_url = Role.DETAIL.reverse(self, self.object)
304302
return success_url
305303

306304
# Pagination and filtering

tests/tests.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import os
2+
import uuid
23

34
from django.core.management import call_command
45
from django.http import HttpResponse
@@ -168,6 +169,21 @@ def test_custom_lookup_field(self):
168169
self.assertEqual(response.status_code, 200)
169170
self.assertContains(response, self.main_collection.name)
170171

172+
def test_custom_lookup_field_create(self):
173+
create_url = reverse("named_collections-create")
174+
175+
# Submit the form.
176+
response = self.client.post(
177+
create_url,
178+
{
179+
"code": uuid.uuid4(),
180+
"name": "The Carlton Collection",
181+
},
182+
follow=True,
183+
)
184+
self.assertEqual(response.status_code, 200)
185+
self.assertEqual(response.resolver_match.url_name, "named_collections-detail")
186+
171187
def test_lookup_url_converter(self):
172188
"""Test view.lookup_url_converter"""
173189
response = self.client.get(f"/named_collections/{self.main_collection.id}/")

0 commit comments

Comments
 (0)