MCPcopy
hub / github.com/django/django / history_view

Method history_view

django/contrib/admin/options.py:2554–2613  ·  view source on GitHub ↗

The 'history' admin view for this model.

(self, request, object_id, extra_context=None)

Source from the content-addressed store, hash-verified

2552 return self.render_delete_form(request, context)
2553
2554 def history_view(self, request, object_id, extra_context=None):
2555 "The 'history' admin view for this model."
2556 from django.contrib.admin.models import LogEntry
2557 from django.contrib.admin.views.main import PAGE_VAR
2558
2559 # First check if the user can see this history.
2560 model = self.model
2561 obj = self.get_object(request, unquote(object_id))
2562 if obj is None:
2563 return self._get_obj_does_not_exist_redirect(
2564 request, model._meta, object_id
2565 )
2566
2567 if not self.has_view_or_change_permission(request, obj):
2568 raise PermissionDenied
2569
2570 # Then get the history for this object.
2571 app_label = self.opts.app_label
2572 action_list = (
2573 LogEntry.objects.filter(
2574 object_id=unquote(object_id),
2575 content_type=get_content_type_for_model(model),
2576 )
2577 .select_related("user", "content_type")
2578 .order_by("action_time")
2579 )
2580
2581 paginator = self.get_paginator(request, action_list, 100)
2582 page_number = request.GET.get(PAGE_VAR, 1)
2583 page_obj = paginator.get_page(page_number)
2584 page_range = paginator.get_elided_page_range(page_obj.number)
2585
2586 context = {
2587 **self.admin_site.each_context(request),
2588 "title": _("Change history: %s")
2589 % display_for_value(str(obj), EMPTY_VALUE_STRING),
2590 "subtitle": None,
2591 "action_list": page_obj,
2592 "page_range": page_range,
2593 "page_var": PAGE_VAR,
2594 "pagination_required": paginator.count > 100,
2595 "module_name": str(capfirst(self.opts.verbose_name_plural)),
2596 "object": obj,
2597 "opts": self.opts,
2598 "preserved_filters": self.get_preserved_filters(request),
2599 **(extra_context or {}),
2600 }
2601
2602 request.current_app = self.admin_site.name
2603
2604 return TemplateResponse(
2605 request,
2606 self.object_history_template
2607 or [
2608 "admin/%s/%s/object_history.html" % (app_label, self.opts.model_name),
2609 "admin/%s/object_history.html" % app_label,
2610 "admin/object_history.html",
2611 ],

Callers

nothing calls this directly

Calls 15

get_objectMethod · 0.95
get_paginatorMethod · 0.95
get_preserved_filtersMethod · 0.95
unquoteFunction · 0.90
display_for_valueFunction · 0.90
capfirstFunction · 0.90
TemplateResponseClass · 0.90
order_byMethod · 0.80
select_relatedMethod · 0.80

Tested by

no test coverage detected