|
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 |