parts/django/tests/regressiontests/views/views.py
changeset 69 c6bca38c1cbf
equal deleted inserted replaced
68:5ff1fc726848 69:c6bca38c1cbf
       
     1 import sys
       
     2 
       
     3 from django.http import HttpResponse, HttpResponseRedirect
       
     4 from django import forms
       
     5 from django.views.debug import technical_500_response
       
     6 from django.views.generic.create_update import create_object
       
     7 from django.core.urlresolvers import get_resolver
       
     8 from django.shortcuts import render_to_response
       
     9 
       
    10 from regressiontests.views import BrokenException, except_args
       
    11 
       
    12 from models import Article
       
    13 
       
    14 
       
    15 def index_page(request):
       
    16     """Dummy index page"""
       
    17     return HttpResponse('<html><body>Dummy page</body></html>')
       
    18 
       
    19 def custom_create(request):
       
    20     """
       
    21     Calls create_object generic view with a custom form class.
       
    22     """
       
    23     class SlugChangingArticleForm(forms.ModelForm):
       
    24         """Custom form class to overwrite the slug."""
       
    25 
       
    26         class Meta:
       
    27             model = Article
       
    28 
       
    29         def save(self, *args, **kwargs):
       
    30             self.instance.slug = 'some-other-slug'
       
    31             return super(SlugChangingArticleForm, self).save(*args, **kwargs)
       
    32 
       
    33     return create_object(request,
       
    34         post_save_redirect='/views/create_update/view/article/%(slug)s/',
       
    35         form_class=SlugChangingArticleForm)
       
    36 
       
    37 def raises(request):
       
    38     try:
       
    39         raise Exception
       
    40     except Exception:
       
    41         return technical_500_response(request, *sys.exc_info())
       
    42 
       
    43 def raises404(request):
       
    44     resolver = get_resolver(None)
       
    45     resolver.resolve('')
       
    46 
       
    47 def redirect(request):
       
    48     """
       
    49     Forces an HTTP redirect.
       
    50     """
       
    51     return HttpResponseRedirect("target/")
       
    52 
       
    53 def view_exception(request, n):
       
    54     raise BrokenException(except_args[int(n)])
       
    55 
       
    56 def template_exception(request, n):
       
    57     return render_to_response('debug/template_exception.html',
       
    58         {'arg': except_args[int(n)]})
       
    59