context_processors.py 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. def site_address(request):
  2. if request.is_secure():
  3. site_protocol = 'https'
  4. address_template = 'https://%s'
  5. else:
  6. site_protocol = 'http'
  7. address_template = 'http://%s'
  8. host = request.get_host()
  9. return {
  10. 'SITE_PROTOCOL': site_protocol,
  11. 'SITE_HOST': host,
  12. 'SITE_ADDRESS': address_template % host,
  13. 'REQUEST_PATH': request.path_info,
  14. }
  15. def current_link(request):
  16. if not request.resolver_match or request.frontend_context.get('CURRENT_LINK'):
  17. return {}
  18. url_name = request.resolver_match.url_name
  19. if request.resolver_match.namespaces:
  20. namespaces = ':'.join(request.resolver_match.namespaces)
  21. link_name = '{}:{}'.format(namespaces, url_name)
  22. else:
  23. link_name = url_name
  24. request.frontend_context.update({
  25. 'CURRENT_LINK': link_name
  26. })
  27. return {}
  28. def frontend_context(request):
  29. if request.include_frontend_context:
  30. return {'frontend_context': request.frontend_context}
  31. else:
  32. return {}