mirror of
https://github.com/django/django.git
synced 2025-08-04 02:48:35 +00:00
Fixed #27991 -- Added obj arg to InlineModelAdmin.has_add_permission().
Thanks Vladimir Ivanov for the initial patch.
This commit is contained in:
parent
4f88143649
commit
be6ca89396
7 changed files with 128 additions and 6 deletions
|
@ -709,6 +709,25 @@ class ModelAdminPermissionTests(SimpleTestCase):
|
|||
request.user = self.MockDeleteUser()
|
||||
self.assertFalse(ma.has_add_permission(request))
|
||||
|
||||
def test_inline_has_add_permission_uses_obj(self):
|
||||
class ConcertInline(TabularInline):
|
||||
model = Concert
|
||||
|
||||
def has_add_permission(self, request, obj):
|
||||
return bool(obj)
|
||||
|
||||
class BandAdmin(ModelAdmin):
|
||||
inlines = [ConcertInline]
|
||||
|
||||
ma = BandAdmin(Band, AdminSite())
|
||||
request = MockRequest()
|
||||
request.user = self.MockAddUser()
|
||||
self.assertEqual(ma.get_inline_instances(request), [])
|
||||
band = Band(name='The Doors', bio='', sign_date=date(1965, 1, 1))
|
||||
inline_instances = ma.get_inline_instances(request, band)
|
||||
self.assertEqual(len(inline_instances), 1)
|
||||
self.assertIsInstance(inline_instances[0], ConcertInline)
|
||||
|
||||
def test_has_change_permission(self):
|
||||
"""
|
||||
has_change_permission returns True for users who can edit objects and
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue