views.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. from functools import partial, update_wrapper
  2. from django.contrib.auth.decorators import user_passes_test
  3. from django.http import HttpResponse
  4. from django.urls import reverse_lazy
  5. from django.views.generic import RedirectView
  6. def empty_view(request, *args, **kwargs):
  7. return HttpResponse()
  8. def absolute_kwargs_view(request, arg1=1, arg2=2):
  9. return HttpResponse()
  10. def defaults_view(request, arg1, arg2):
  11. pass
  12. def nested_view(request):
  13. pass
  14. def erroneous_view(request):
  15. import non_existent # NOQA
  16. def pass_resolver_match_view(request, *args, **kwargs):
  17. response = HttpResponse()
  18. response.resolver_match = request.resolver_match
  19. return response
  20. uncallable = None # neither a callable nor a string
  21. class ViewClass:
  22. def __call__(self, request, *args, **kwargs):
  23. return HttpResponse()
  24. view_class_instance = ViewClass()
  25. class LazyRedirectView(RedirectView):
  26. url = reverse_lazy('named-lazy-url-redirected-to')
  27. @user_passes_test(lambda u: u.is_authenticated, login_url=reverse_lazy('some-login-page'))
  28. def login_required_view(request):
  29. return HttpResponse('Hello you')
  30. def bad_view(request, *args, **kwargs):
  31. raise ValueError("I don't think I'm getting good value for this view")
  32. empty_view_partial = partial(empty_view, template_name="template.html")
  33. empty_view_nested_partial = partial(empty_view_partial, template_name="nested_partial.html")
  34. empty_view_wrapped = update_wrapper(
  35. partial(empty_view, template_name="template.html"), empty_view,
  36. )