{% extends "admin/base_site.html" %} {% load i18n %} {% block bodyclass %}grp-doc{% endblock %} {% block content-class %}{% endblock %} {% block title %}Grappelli Documentation » Change-Form{% endblock %} {% block extrahead %} {% endblock %} {% block breadcrumbs %}
A change-form is used for adding/editing the data of an object. Its basic structure and most important components are explained below. At the end of the page, you'll find a complete change-form template. Make sure to read about how a custom template is built first to gain basic understanding.
{% filter force_escape %}
{% templatetag openblock %} extends "admin/base_site.html" {% templatetag closeblock %}
{% templatetag openblock %} load i18n admin_static admin_modify grp_tags {% templatetag closeblock %}
{% templatetag openblock %} block bodyclass {% templatetag closeblock %}grp-change-form{% templatetag openblock %} endblock {% templatetag closeblock %}
{% endfilter %}
Link custom stylesheets if needed. Regarding javascripts, you should take a look at Grappellis change_list.html — mentioned below are just the parts you need for the page-tools and collapsibles.
{% filter force_escape %}
{% templatetag openblock %} block extrastyle {% templatetag closeblock %}
{% templatetag openblock %} endblock {% templatetag closeblock %}
{% templatetag openblock %} block javascripts {% templatetag closeblock %}
{% endfilter %}{{ block.super }}{% filter force_escape %}
{% templatetag openblock %} url 'admin:jsi18n' as jsi18nurl {% templatetag closeblock %}
{% templatetag openblock %} endblock {% templatetag closeblock %}
{% endfilter %}
A detailed explanation on how breadcrumbs & page-tools are built can be found here.
{% filter force_escape %}
{% templatetag openblock %} block page-tools {% templatetag closeblock %}
{% templatetag openblock %} if not is_popup {% templatetag closeblock %}
{% templatetag openblock %} endif {% templatetag closeblock %}
{% templatetag openblock %} endblock {% templatetag closeblock %}
{% templatetag openblock %} block breadcrumbs {% templatetag closeblock %}
{% templatetag openblock %} if not is_popup {% templatetag closeblock %}
- {% templatetag openblock %} trans "Home" {% templatetag closeblock %}
- {% templatetag openblock %} opts.app_config.verbose_name {% templatetag closeblock %}
-
{% templatetag openblock %} if has_change_permission {% templatetag closeblock %}
{% endfilter %}{{ opts.verbose_name_plural|capfirst }}{% filter force_escape %}
{% templatetag openblock %} else {% templatetag closeblock %}
{% endfilter %}{{ opts.verbose_name_plural|capfirst }}{% filter force_escape %}
{% templatetag openblock %} endif {% templatetag closeblock %}
-
{% templatetag openblock %} if add {% templatetag closeblock %}
{% templatetag openblock %} trans "Add" {% templatetag closeblock %} {% endfilter %}{{ opts.verbose_name }}{% filter force_escape %}
{% templatetag openblock %} else {% templatetag closeblock %}
{% endfilter %}{{ original|truncatewords:"18" }}{% filter force_escape %}
{% templatetag openblock %} endif {% templatetag closeblock %}
{% templatetag openblock %} endif {% templatetag closeblock %}
{% templatetag openblock %} endblock {% templatetag closeblock %}
{% endfilter %}
A detailed explanation on how the different components of the content are built can be found using the following links: Modules, Rows & Cells, Collapsible Modules, Stacked & Tabular Groups, Collapsible Groups, Labels, Form Fields & Widths, Fieldsets and Submit Rows.
{% filter force_escape %}
{% templatetag openblock %} block content {% templatetag closeblock %}
{% templatetag openblock %} endblock {% templatetag closeblock %}
{% endfilter %}
{% filter force_escape %}
{% templatetag openblock %} extends "admin/base_site.html" {% templatetag closeblock %}
{% templatetag openblock %} load i18n admin_static admin_modify grp_tags {% templatetag closeblock %}
{% templatetag openblock %} block extrastyle {% templatetag closeblock %}
{% templatetag openblock %} endblock {% templatetag closeblock %}
{% templatetag openblock %} block javascripts {% templatetag closeblock %}
{% endfilter %}{{ block.super }}{% filter force_escape %}
{% templatetag openblock %} url 'admin:jsi18n' as jsi18nurl {% templatetag closeblock %}
{% templatetag openblock %} endblock {% templatetag closeblock %}
{% templatetag openblock %} block bodyclass {% templatetag closeblock %}grp-change-form{% templatetag openblock %} endblock {% templatetag closeblock %}
{% templatetag openblock %} block page-tools {% templatetag closeblock %}
{% templatetag openblock %} if not is_popup {% templatetag closeblock %}
{% templatetag openblock %} endif {% templatetag closeblock %}
{% templatetag openblock %} endblock {% templatetag closeblock %}
{% templatetag openblock %} block breadcrumbs {% templatetag closeblock %}
{% templatetag openblock %} if not is_popup {% templatetag closeblock %}
- {% templatetag openblock %} trans "Home" {% templatetag closeblock %}
- {% templatetag openblock %} opts.app_config.verbose_name {% templatetag closeblock %}
-
{% templatetag openblock %} if has_change_permission {% templatetag closeblock %}
{% endfilter %}{{ opts.verbose_name_plural|capfirst }}{% filter force_escape %}
{% templatetag openblock %} else {% templatetag closeblock %}
{% endfilter %}{{ opts.verbose_name_plural|capfirst }}{% filter force_escape %}
{% templatetag openblock %} endif {% templatetag closeblock %}
-
{% templatetag openblock %} if add {% templatetag closeblock %}
{% templatetag openblock %} trans "Add" {% templatetag closeblock %} {% endfilter %}{{ opts.verbose_name }}{% filter force_escape %}
{% templatetag openblock %} else {% templatetag closeblock %}
{% endfilter %}{{ original|truncatewords:"18" }}{% filter force_escape %}
{% templatetag openblock %} endif {% templatetag closeblock %}
{% templatetag openblock %} endif {% templatetag closeblock %}
{% templatetag openblock %} endblock {% templatetag closeblock %}
{% templatetag openblock %} block content {% templatetag closeblock %}
{% templatetag openblock %} endblock {% templatetag closeblock %}
{% endfilter %}