[1.8.x] Fixed #25267 -- Corrected message for admin.E122 system check.
Backport of ece78684d9
from master
This commit is contained in:
parent
d5e3eb986d
commit
c652383379
|
@ -774,8 +774,15 @@ class ModelAdminChecks(BaseModelAdminChecks):
|
|||
model=model, obj=cls, id='admin.E121')
|
||||
else:
|
||||
if field_name not in cls.list_display:
|
||||
return refer_to_missing_field(field=field_name, option=label,
|
||||
model=model, obj=cls, id='admin.E122')
|
||||
return [
|
||||
checks.Error(
|
||||
"The value of '%s' refers to '%s', which is not "
|
||||
"contained in 'list_display'." % (label, field_name),
|
||||
hint=None,
|
||||
obj=cls,
|
||||
id='admin.E122',
|
||||
)
|
||||
]
|
||||
elif cls.list_display_links and field_name in cls.list_display_links:
|
||||
return [
|
||||
checks.Error(
|
||||
|
|
|
@ -70,6 +70,22 @@ class SystemChecksTestCase(TestCase):
|
|||
custom_site.unregister(Song)
|
||||
admin.sites.system_check_errors = []
|
||||
|
||||
def test_field_name_not_in_list_display(self):
|
||||
class SongAdmin(admin.ModelAdmin):
|
||||
list_editable = ["original_release"]
|
||||
|
||||
errors = SongAdmin.check(model=Song)
|
||||
expected = [
|
||||
checks.Error(
|
||||
"The value of 'list_editable[0]' refers to 'original_release', "
|
||||
"which is not contained in 'list_display'.",
|
||||
hint=None,
|
||||
obj=SongAdmin,
|
||||
id='admin.E122',
|
||||
)
|
||||
]
|
||||
self.assertEqual(errors, expected)
|
||||
|
||||
def test_readonly_and_editable(self):
|
||||
class SongAdmin(admin.ModelAdmin):
|
||||
readonly_fields = ["original_release"]
|
||||
|
|
Loading…
Reference in New Issue