Construct a changelist formset, and remove list_editable fields for objects the user cannot change.
(self, request, queryset, for_save=False)
| 2251 | return queryset.filter(pk__in=object_pks) |
| 2252 | |
| 2253 | def _get_formset_with_permissions(self, request, queryset, for_save=False): |
| 2254 | """ |
| 2255 | Construct a changelist formset, and remove list_editable fields |
| 2256 | for objects the user cannot change. |
| 2257 | """ |
| 2258 | FormSet = self.get_changelist_formset(request) |
| 2259 | if for_save: |
| 2260 | formset = FormSet(data=request.POST, files=request.FILES, queryset=queryset) |
| 2261 | else: |
| 2262 | formset = FormSet(queryset=queryset) |
| 2263 | |
| 2264 | for form in formset.forms: |
| 2265 | if not self.has_change_permission(request, form.instance): |
| 2266 | for field_name in self.list_editable: |
| 2267 | form.fields.pop(field_name, None) |
| 2268 | |
| 2269 | return formset |
| 2270 | |
| 2271 | def _save_formset(self, request, formset): |
| 2272 | changecount = 0 |
no test coverage detected