diff options
| author | Aymeric Augustin <aymeric.augustin@m4x.org> | 2012-10-20 15:48:38 +0200 |
|---|---|---|
| committer | Aymeric Augustin <aymeric.augustin@m4x.org> | 2012-10-20 15:49:52 +0200 |
| commit | c2e19e26bc33d34eff57079bd1a6838ff64d9e81 (patch) | |
| tree | b844d7ce40b784095562ccebb584a4e18d50633d /django | |
| parent | dcbf08cce59ceb83918b1b63c2bb827828bbdd2c (diff) | |
Fixed #17856 -- Passed obj to get_inline_instances
Thanks ybon, quinode and sjaensch for the patch, and Tim Graham
for the review.
Diffstat (limited to 'django')
| -rw-r--r-- | django/contrib/admin/options.py | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/django/contrib/admin/options.py b/django/contrib/admin/options.py index bbd7939d3f..19c212db9a 100644 --- a/django/contrib/admin/options.py +++ b/django/contrib/admin/options.py @@ -346,14 +346,14 @@ class ModelAdmin(BaseModelAdmin): self.admin_site = admin_site super(ModelAdmin, self).__init__() - def get_inline_instances(self, request): + def get_inline_instances(self, request, obj=None): inline_instances = [] for inline_class in self.inlines: inline = inline_class(self.model, self.admin_site) if request: if not (inline.has_add_permission(request) or - inline.has_change_permission(request) or - inline.has_delete_permission(request)): + inline.has_change_permission(request, obj) or + inline.has_delete_permission(request, obj)): continue if not inline.has_add_permission(request): inline.max_num = 0 @@ -506,7 +506,7 @@ class ModelAdmin(BaseModelAdmin): fields=self.list_editable, **defaults) def get_formsets(self, request, obj=None): - for inline in self.get_inline_instances(request): + for inline in self.get_inline_instances(request, obj): yield inline.get_formset(request, obj) def get_paginator(self, request, queryset, per_page, orphans=0, allow_empty_first_page=True): @@ -994,7 +994,7 @@ class ModelAdmin(BaseModelAdmin): ModelForm = self.get_form(request) formsets = [] - inline_instances = self.get_inline_instances(request) + inline_instances = self.get_inline_instances(request, None) if request.method == 'POST': form = ModelForm(request.POST, request.FILES) if form.is_valid(): @@ -1091,7 +1091,7 @@ class ModelAdmin(BaseModelAdmin): ModelForm = self.get_form(request, obj) formsets = [] - inline_instances = self.get_inline_instances(request) + inline_instances = self.get_inline_instances(request, obj) if request.method == 'POST': form = ModelForm(request.POST, request.FILES, instance=obj) if form.is_valid(): |
