Fix form action URL in user edit and delete views for custom user models (#11951)

* Add test for the form action URL in the user edit and delete views

* Reinstate context_object_name in users EditView and DeleteView

Mistakenly removed in 83e79301a9
pull/11953/head
sag​e 2024-05-13 18:47:12 +01:00 zatwierdzone przez GitHub
rodzic a09bba67cd
commit 36892908b6
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: B5690EEEBB952194
2 zmienionych plików z 14 dodań i 2 usunięć

Wyświetl plik

@ -782,6 +782,12 @@ class TestUserDeleteView(AdminTemplateTestUtils, WagtailTestUtils, TestCase):
self.assertTemplateUsed(response, "wagtailusers/users/confirm_delete.html")
self.assertBreadcrumbsNotRendered(response.content)
# Should render the form with the correct action URL
soup = self.get_soup(response.content)
delete_url = reverse("wagtailusers_users:delete", args=(self.test_user.pk,))
form_action = soup.select_one("form").attrs["action"]
self.assertEqual(form_action, delete_url)
def test_delete(self):
response = self.post(follow=True)
@ -990,9 +996,13 @@ class TestUserEditView(AdminTemplateTestUtils, WagtailTestUtils, TestCase):
history_link = header.find("a", attrs={"href": history_url})
self.assertIsNotNone(history_link)
# Should render the form with the correct action URL
edit_url = reverse("wagtailusers_users:edit", args=(self.test_user.pk,))
form_action = soup.select_one("form").attrs["action"]
self.assertEqual(form_action, edit_url)
url_finder = AdminURLFinder(self.current_user)
expected_url = f"/admin/users/edit/{self.test_user.pk}/"
self.assertEqual(url_finder.get_edit_url(self.test_user), expected_url)
self.assertEqual(url_finder.get_edit_url(self.test_user), edit_url)
def test_legacy_url_redirect(self):
with self.assertWarnsMessage(

Wyświetl plik

@ -286,6 +286,7 @@ class Edit(EditView):
success_message = gettext_lazy("User '%(object)s' updated.")
error_message = gettext_lazy("The user could not be saved due to errors.")
context_object_name = "user"
def setup(self, request, *args, **kwargs):
super().setup(request, *args, **kwargs)
@ -339,6 +340,7 @@ class Delete(DeleteView):
page_title = gettext_lazy("Delete user")
success_message = gettext_lazy("User '%(object)s' deleted.")
context_object_name = "user"
def dispatch(self, request, *args, **kwargs):
self.object = self.get_object()