[1.8.x] Fixed #25267 -- Corrected message for admin.E122 system check.

Backport of ece78684d9 from master
This commit is contained in:
Fabrizio Ettore Messina 2015-08-13 10:03:20 +02:00 committed by Tim Graham
parent d5e3eb986d
commit c652383379
2 changed files with 25 additions and 2 deletions

View File

@ -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(

View File

@ -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"]