mirror of
https://github.com/django/django.git
synced 2025-10-24 14:16:09 +00:00
Fixed #15424 -- Corrected lookup of callables listed in admin inlines' readonly_fields by passing the right ModelAdmin (sub)class instance when instantiating inline forms admin wrappers. Also, added early validation of its elements. Thanks kmike for the report and Karen for the patch fixing the issue.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@15650 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
@@ -4,7 +4,7 @@ from django.contrib.admin.validation import validate, validate_inline, \
|
||||
ImproperlyConfigured
|
||||
from django.test import TestCase
|
||||
|
||||
from models import Song, Book, Album, TwoAlbumFKAndAnE
|
||||
from models import Song, Book, Album, TwoAlbumFKAndAnE, State, City
|
||||
|
||||
class SongForm(forms.ModelForm):
|
||||
pass
|
||||
@@ -162,6 +162,16 @@ class ValidationTestCase(TestCase):
|
||||
validate,
|
||||
SongAdmin, Song)
|
||||
|
||||
def test_nonexistant_field_on_inline(self):
|
||||
class CityInline(admin.TabularInline):
|
||||
model = City
|
||||
readonly_fields=['i_dont_exist'] # Missing attribute
|
||||
|
||||
self.assertRaisesMessage(ImproperlyConfigured,
|
||||
"CityInline.readonly_fields[0], 'i_dont_exist' is not a callable or an attribute of 'CityInline' or found in the model 'City'.",
|
||||
validate_inline,
|
||||
CityInline, None, State)
|
||||
|
||||
def test_extra(self):
|
||||
class SongAdmin(admin.ModelAdmin):
|
||||
def awesome_song(self, instance):
|
||||
@@ -241,7 +251,3 @@ class ValidationTestCase(TestCase):
|
||||
fields = ['title', 'extra_data']
|
||||
|
||||
validate(FieldsOnFormOnlyAdmin, Song)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user