MCPcopy
hub / github.com/django/django / render_change_form

Method render_change_form

django/contrib/admin/options.py:1481–1544  ·  view source on GitHub ↗
(
        self, request, context, add=False, change=False, form_url="", obj=None
    )

Source from the content-addressed store, hash-verified

1479 self.save_formset(request, form, formset, change=change)
1480
1481 def render_change_form(
1482 self, request, context, add=False, change=False, form_url="", obj=None
1483 ):
1484 app_label = self.opts.app_label
1485 preserved_filters = self.get_preserved_filters(request)
1486 form_url = add_preserved_filters(
1487 {"preserved_filters": preserved_filters, "opts": self.opts}, form_url
1488 )
1489 view_on_site_url = self.get_view_on_site_url(obj)
1490 has_editable_inline_admin_formsets = False
1491 for inline in context["inline_admin_formsets"]:
1492 if (
1493 inline.has_add_permission
1494 or inline.has_change_permission
1495 or inline.has_delete_permission
1496 ):
1497 has_editable_inline_admin_formsets = True
1498 break
1499 context.update(
1500 {
1501 "add": add,
1502 "change": change,
1503 "has_view_permission": self.has_view_permission(request, obj),
1504 "has_add_permission": self.has_add_permission(request),
1505 "has_change_permission": self.has_change_permission(request, obj),
1506 "has_delete_permission": self.has_delete_permission(request, obj),
1507 "has_editable_inline_admin_formsets": (
1508 has_editable_inline_admin_formsets
1509 ),
1510 "has_file_field": context["adminform"].form.is_multipart()
1511 or any(
1512 admin_formset.formset.is_multipart()
1513 for admin_formset in context["inline_admin_formsets"]
1514 ),
1515 "has_absolute_url": view_on_site_url is not None,
1516 "absolute_url": view_on_site_url,
1517 "form_url": form_url,
1518 "opts": self.opts,
1519 "content_type_id": get_content_type_for_model(self.model).pk,
1520 "save_as": self.save_as,
1521 "save_on_top": self.save_on_top,
1522 "to_field_var": TO_FIELD_VAR,
1523 "is_popup_var": IS_POPUP_VAR,
1524 "source_model_var": SOURCE_MODEL_VAR,
1525 "app_label": app_label,
1526 }
1527 )
1528 if add and self.add_form_template is not None:
1529 form_template = self.add_form_template
1530 else:
1531 form_template = self.change_form_template
1532
1533 request.current_app = self.admin_site.name
1534
1535 return TemplateResponse(
1536 request,
1537 form_template
1538 or [

Callers 1

_changeform_viewMethod · 0.95

Calls 11

get_preserved_filtersMethod · 0.95
add_preserved_filtersFunction · 0.90
TemplateResponseClass · 0.90
get_view_on_site_urlMethod · 0.80
updateMethod · 0.45
has_view_permissionMethod · 0.45
has_add_permissionMethod · 0.45
has_change_permissionMethod · 0.45
has_delete_permissionMethod · 0.45
is_multipartMethod · 0.45

Tested by

no test coverage detected