views.py 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. import os.path
  2. from django.shortcuts import render_to_response, render
  3. from django.template import Context, RequestContext
  4. from django.utils._os import upath
  5. dirs = (os.path.join(os.path.dirname(upath(__file__)), 'other_templates'),)
  6. def render_to_response_view(request):
  7. return render_to_response('shortcuts/render_test.html', {
  8. 'foo': 'FOO',
  9. 'bar': 'BAR',
  10. })
  11. def render_to_response_view_with_multiple_templates(request):
  12. return render_to_response([
  13. 'shortcuts/no_such_template.html',
  14. 'shortcuts/render_test.html',
  15. ], {
  16. 'foo': 'FOO',
  17. 'bar': 'BAR',
  18. })
  19. def render_to_response_view_with_request_context(request):
  20. return render_to_response('shortcuts/render_test.html', {
  21. 'foo': 'FOO',
  22. 'bar': 'BAR',
  23. }, context_instance=RequestContext(request))
  24. def render_to_response_view_with_content_type(request):
  25. return render_to_response('shortcuts/render_test.html', {
  26. 'foo': 'FOO',
  27. 'bar': 'BAR',
  28. }, content_type='application/x-rendertest')
  29. def render_to_response_view_with_dirs(request):
  30. return render_to_response('render_dirs_test.html', dirs=dirs)
  31. def render_to_response_view_with_status(request):
  32. return render_to_response('shortcuts/render_test.html', {
  33. 'foo': 'FOO',
  34. 'bar': 'BAR',
  35. }, status=403)
  36. def render_to_response_view_with_using(request):
  37. using = request.GET.get('using')
  38. return render_to_response('shortcuts/using.html', using=using)
  39. def context_processor(request):
  40. return {'bar': 'context processor output'}
  41. def render_to_response_with_context_instance_misuse(request):
  42. context_instance = RequestContext(request, {}, processors=[context_processor])
  43. # Incorrect -- context_instance should be passed as a keyword argument.
  44. return render_to_response('shortcuts/render_test.html', context_instance)
  45. def render_view(request):
  46. return render(request, 'shortcuts/render_test.html', {
  47. 'foo': 'FOO',
  48. 'bar': 'BAR',
  49. })
  50. def render_view_with_multiple_templates(request):
  51. return render(request, [
  52. 'shortcuts/no_such_template.html',
  53. 'shortcuts/render_test.html',
  54. ], {
  55. 'foo': 'FOO',
  56. 'bar': 'BAR',
  57. })
  58. def render_view_with_base_context(request):
  59. return render(request, 'shortcuts/render_test.html', {
  60. 'foo': 'FOO',
  61. 'bar': 'BAR',
  62. }, context_instance=Context())
  63. def render_view_with_content_type(request):
  64. return render(request, 'shortcuts/render_test.html', {
  65. 'foo': 'FOO',
  66. 'bar': 'BAR',
  67. }, content_type='application/x-rendertest')
  68. def render_with_dirs(request):
  69. return render(request, 'render_dirs_test.html', dirs=dirs)
  70. def render_view_with_status(request):
  71. return render(request, 'shortcuts/render_test.html', {
  72. 'foo': 'FOO',
  73. 'bar': 'BAR',
  74. }, status=403)
  75. def render_view_with_using(request):
  76. using = request.GET.get('using')
  77. return render(request, 'shortcuts/using.html', using=using)
  78. def render_view_with_current_app(request):
  79. return render(request, 'shortcuts/render_test.html', {
  80. 'foo': 'FOO',
  81. 'bar': 'BAR',
  82. }, current_app="foobar_app")
  83. def render_view_with_current_app_conflict(request):
  84. # This should fail because we don't passing both a current_app and
  85. # context_instance:
  86. return render(request, 'shortcuts/render_test.html', {
  87. 'foo': 'FOO',
  88. 'bar': 'BAR',
  89. }, current_app="foobar_app", context_instance=RequestContext(request))