base.py 892 B

123456789101112131415161718192021222324252627
  1. from django.views import View
  2. from .. import render
  3. class AdminView(View):
  4. def get_template_name(self, request):
  5. return "%s/%s" % (self.templates_dir, self.template_name)
  6. def current_link(self, request):
  7. matched_url = request.resolver_match.url_name
  8. return "%s:%s" % (request.resolver_match.namespace, matched_url)
  9. def process_context(self, request, context):
  10. """simple hook for extending and manipulating template context."""
  11. return context
  12. def render(self, request, context=None, template_name=None):
  13. context = context or {}
  14. context["root_link"] = self.root_link
  15. context["current_link"] = self.current_link(request)
  16. context = self.process_context(request, context)
  17. template_name = template_name or self.get_template_name(request)
  18. return render(request, template_name, context)