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
10 from regressiontests
.views
import BrokenException
, except_args
12 from models
import Article
15 def index_page(request
):
16 """Dummy index page"""
17 return HttpResponse('<html><body>Dummy page</body></html>')
19 def custom_create(request
):
21 Calls create_object generic view with a custom form class.
23 class SlugChangingArticleForm(forms
.ModelForm
):
24 """Custom form class to overwrite the slug."""
29 def save(self
, *args
, **kwargs
):
30 self
.instance
.slug
= 'some-other-slug'
31 return super(SlugChangingArticleForm
, self
).save(*args
, **kwargs
)
33 return create_object(request
,
34 post_save_redirect
='/views/create_update/view/article/%(slug)s/',
35 form_class
=SlugChangingArticleForm
)
41 return technical_500_response(request
, *sys
.exc_info())
43 def raises404(request
):
44 resolver
= get_resolver(None)
47 def redirect(request
):
49 Forces an HTTP redirect.
51 return HttpResponseRedirect("target/")
53 def view_exception(request
, n
):
54 raise BrokenException(except_args
[int(n
)])
56 def template_exception(request
, n
):
57 return render_to_response('debug/template_exception.html',
58 {'arg': except_args
[int(n
)]})