1
0
mirror of https://github.com/django/django.git synced 2025-10-24 22:26:08 +00:00

Fixed #25374 -- Made ModelAdmin checks work on instances instead of classes.

This allows dynamically-generated attributes to be specified in
checked ModelAdmin attributes without triggering errors.
This commit is contained in:
Malcolm Box
2015-09-10 14:05:31 +01:00
committed by Tim Graham
parent cf99bae53a
commit 1d8eb0cae5
8 changed files with 348 additions and 343 deletions

View File

@@ -6,7 +6,7 @@ import os
import re
import unittest
from django.contrib.admin import ModelAdmin
from django.contrib.admin import AdminSite, ModelAdmin
from django.contrib.admin.helpers import ACTION_CHECKBOX_NAME
from django.contrib.admin.models import ADDITION, DELETION, LogEntry
from django.contrib.admin.options import TO_FIELD_VAR
@@ -6128,14 +6128,15 @@ class AdminViewOnSiteTests(TestCase):
def test_check(self):
"Ensure that the view_on_site value is either a boolean or a callable"
try:
admin = CityAdmin(City, AdminSite())
CityAdmin.view_on_site = True
self.assertEqual(CityAdmin.check(City), [])
self.assertEqual(admin.check(), [])
CityAdmin.view_on_site = False
self.assertEqual(CityAdmin.check(City), [])
self.assertEqual(admin.check(), [])
CityAdmin.view_on_site = lambda obj: obj.get_absolute_url()
self.assertEqual(CityAdmin.check(City), [])
self.assertEqual(admin.check(), [])
CityAdmin.view_on_site = []
self.assertEqual(CityAdmin.check(City), [
self.assertEqual(admin.check(), [
Error(
"The value of 'view_on_site' must be a callable or a boolean value.",
hint=None,