Fall back on field.name for fields that don't provide a verbose_name property

pull/9633/head
Matt Westcott 2022-11-08 10:13:40 +00:00
rodzic 748c082e01
commit 4013773d06
2 zmienionych plików z 16 dodań i 1 usunięć

Wyświetl plik

@ -488,4 +488,10 @@ class ReferenceIndex(models.Model):
child_field = field.related_model._meta.get_field(model_path_components[2])
return capfirst(child_field.verbose_name)
else:
return capfirst(field.verbose_name)
try:
field_name = field.verbose_name
except AttributeError:
# generate verbose name from field name in the same way that Django does:
# https://github.com/django/django/blob/7b94847e384b1a8c05a7d4c8778958c0290bdf9a/django/db/models/fields/__init__.py#L858
field_name = field.name.replace("_", " ")
return capfirst(field_name)

Wyświetl plik

@ -60,6 +60,7 @@ from wagtail.test.testapp.models import (
AdvertWithTabbedInterface,
DraftStateCustomPrimaryKeyModel,
DraftStateModel,
GenericSnippetPage,
RevisableChildModel,
RevisableModel,
SnippetChooserModel,
@ -3161,6 +3162,12 @@ class TestSnippetUsageView(TestCase, WagtailTestUtils):
page = Page.objects.get(pk=2)
page.save()
gfk_page = GenericSnippetPage(
title="Generic snippet page",
snippet_content_object=Advert.objects.get(pk=1),
)
page.add_child(instance=gfk_page)
response = self.client.get(
reverse(
"wagtailsnippets_tests_advert:usage",
@ -3168,6 +3175,8 @@ class TestSnippetUsageView(TestCase, WagtailTestUtils):
)
)
self.assertContains(response, "Welcome to the Wagtail test site!")
self.assertContains(response, "Generic snippet page")
self.assertContains(response, "Snippet content object")
def test_usage_without_edit_permission_on_snippet(self):
# Create a user with basic admin backend access