def render_change_form(self, request, context, add=False, change=False, form_url='', obj=None): broken_item = obj and is_broken(obj) or False context.update({ 'is_broken': broken_item, }) return super(RegisteredItemAdmin, self).render_change_form(request, context, add, change, form_url, obj)
def get_form(self, request, obj=None, **kwargs): form = super(RegisteredItemAdmin, self).get_form(request, obj, **kwargs) broken_item = is_broken(obj) if broken_item: # a broken registered item will be not editable by anybody for field_name, field in form.base_fields.items(): set_field_read_only(field, field_name, obj) if not broken_item and 'config' in form.base_fields.keys(): config = obj.get_registry_item().get_config() config_field = form.base_fields['config'] config_field.set_config(config) return form