0
0
mirror of https://github.com/wagtail/wagtail.git synced 2024-11-29 17:36:49 +01:00
wagtail/docs/reference/contrib/modeladmin/inspectview.rst
Andy Babic 3348cd5c89 Reduce modeladmin’s dependency on wagtail.wagtailimages and wagtail.wagtaildocs
- Remove imports at the top of options.py and views.py that result in ImportError when those apps aren’t installed
- Alter ThumbnailMixin and InspectView to use the `wagtail.wagtailimages.shortcuts.get_rendition_or_not_found()` method to render images, which handles missing image source files gracefully, and reduces code duplication.
- Simplify `get_field_display_value()` by not limiting image and document rendering to ForeignKey fields. It should work consistently for property methods or other attributes too.
2017-03-03 15:33:17 +00:00

103 lines
3.5 KiB
ReStructuredText

======================================
Enabling & customising ``InspectView``
======================================
The ``InspectView`` is disabled by default, as it's not often useful for most
models. However, if you need a view that enables users to view more detailed
information about an instance without the option to edit it, you can easily
enable the inspect view by setting ``inspect_view_enabled=True`` on your
``ModelAdmin`` class.
When enabled, an 'Inspect' button will automatically appear for each row in
your index / listing view, linking to new page that shows values a list of
field values for that particular object.
By default, all 'concrete' fields (where the field value is stored as a column
in the database table for your model) will be shown. You can customise what
values are displayed by adding the following attributes to your ``ModelAdmin``
class:
.. contents::
:local:
:depth: 1
.. _modeladmin_inspect_view_fields:
------------------------------------------
``ModelAdmin.inspect_view_fields``
------------------------------------------
**Expected value:** A list or tuple, where each item is the name of a field
or attribute on the instance that you'd like ``InpectView`` to render.
A sensible value will be rendered for most field types.
If you have ``wagtail.wagtailimages`` installed, and the value happens to be an
instance of ``wagtailimages.models.Image`` (or a custom model that subclasses
``wagtailimages.models.AbstractImage``), a thumbnail of that image will be
rendered.
If you have `wagtail.wagtaildocs` installed, and the value happens to be an
instance of `wagtaildocs.models.Document` (or a custom model that subclasses
``wagtaildocs.models.AbstractDocument``), a link to that document will be
rendered, along with the document title, file extension and size.
.. _modeladmin_inspect_view_fields_exclude:
------------------------------------------
``ModelAdmin.inspect_view_fields_exclude``
------------------------------------------
**Expected value:** A list or tuple, where each item is the name of a field
that you'd like to exclude from ``InpectView``
**Note:** If both ``inspect_view_fields`` and ``inspect_view_fields_exclude``
are set, ``inspect_view_fields_exclude`` will be ignored.
.. _modeladmin_inspect_view_extra_css:
-------------------------------------
``ModelAdmin.inspect_view_extra_css``
-------------------------------------
**Expected value**: A list of path names of additional stylesheets to be added
to the ``InspectView``
See the following part of the docs to find out more:
:ref:`modeladmin_adding_css_and_js`
.. _modeladmin_inspect_view_extra_js:
------------------------------------
``ModelAdmin.inspect_view_extra_js``
------------------------------------
**Expected value**: A list of path names of additional js files to be added
to the ``InspectView``
See the following part of the docs to find out more:
:ref:`modeladmin_adding_css_and_js`
.. _modeladmin_inspect_template_name:
---------------------------------------
``ModelAdmin.inspect_template_name``
---------------------------------------
**Expected value**: The path to a custom template to use for ``InspectView``
See the following part of the docs to find out more:
:ref:`modeladmin_overriding_templates`
.. _modeladmin_inspect_view_class:
---------------------------------------
``ModelAdmin.inspect_view_class``
---------------------------------------
**Expected value**: A custom ``view`` class to replace
``modeladmin.views.InspectView``
See the following part of the docs to find out more:
:ref:`modeladmin_overriding_views`