MCPcopy
hub / github.com/django/django / response_add

Method response_add

django/contrib/admin/options.py:1550–1680  ·  view source on GitHub ↗

Determine the HttpResponse for the add_view stage.

(self, request, obj, post_url_continue=None)

Source from the content-addressed store, hash-verified

1548 return parse_qsl(query_string.replace(preserved_filters, ""))
1549
1550 def response_add(self, request, obj, post_url_continue=None):
1551 """
1552 Determine the HttpResponse for the add_view stage.
1553 """
1554 opts = obj._meta
1555 preserved_filters = self.get_preserved_filters(request)
1556 preserved_qsl = self._get_preserved_qsl(request, preserved_filters)
1557 obj_url = reverse(
1558 "admin:%s_%s_change" % (opts.app_label, opts.model_name),
1559 args=(quote(obj.pk),),
1560 current_app=self.admin_site.name,
1561 )
1562 # Add a link to the object's change form if the user can edit the obj.
1563 obj_display = display_for_value(str(obj), EMPTY_VALUE_STRING)
1564 if self.has_change_permission(request, obj):
1565 obj_repr = format_html(
1566 '<a href="{}">{}</a>', urlquote(obj_url), obj_display
1567 )
1568 else:
1569 obj_repr = obj_display
1570 msg_dict = {
1571 "name": opts.verbose_name,
1572 "obj": obj_repr,
1573 }
1574 # Here, we distinguish between different save types by checking for
1575 # the presence of keys in request.POST.
1576
1577 if IS_POPUP_VAR in request.POST:
1578 to_field = request.POST.get(TO_FIELD_VAR)
1579 if to_field:
1580 attr = str(to_field)
1581 else:
1582 attr = obj._meta.pk.attname
1583 value = obj.serializable_value(attr)
1584 popup_response = {
1585 "value": str(value),
1586 "obj": str(obj),
1587 }
1588
1589 # Find the optgroup for the new item, if available
1590 source_model_name = request.POST.get(SOURCE_MODEL_VAR)
1591 source_admin = None
1592 if source_model_name:
1593 app_label, model_name = source_model_name.split(".", 1)
1594 try:
1595 source_model = apps.get_model(app_label, model_name)
1596 except LookupError:
1597 msg = _('The app "%s" could not be found.') % source_model_name
1598 self.message_user(request, msg, messages.ERROR)
1599 else:
1600 source_admin = self.admin_site._registry.get(source_model)
1601
1602 if source_admin:
1603 form = source_admin.get_form(request)()
1604 if self.opts.verbose_name_plural in form.fields:
1605 field = form.fields[self.opts.verbose_name_plural]
1606 for option_value, option_label in field.choices:
1607 # Check if this is an optgroup (label is a sequence

Callers 1

_changeform_viewMethod · 0.95

Calls 15

get_preserved_filtersMethod · 0.95
_get_preserved_qslMethod · 0.95
message_userMethod · 0.95
reverseFunction · 0.90
quoteFunction · 0.90
display_for_valueFunction · 0.90
format_htmlFunction · 0.90
TemplateResponseClass · 0.90
add_preserved_filtersFunction · 0.90
serializable_valueMethod · 0.80

Tested by

no test coverage detected