1
1
"""Views for Organizer App"""
2
- from django .shortcuts import (
3
- get_object_or_404 ,
4
- redirect ,
5
- render ,
2
+ from django .urls import reverse_lazy
3
+ from django .views .generic import (
4
+ CreateView ,
5
+ DeleteView ,
6
+ DetailView ,
7
+ ListView ,
8
+ UpdateView ,
6
9
)
7
- from django .urls import reverse
8
- from django .views import View
9
- from django .views .generic import DetailView , ListView
10
10
11
11
from .forms import TagForm
12
12
from .models import Startup , Tag
@@ -26,69 +26,30 @@ class TagDetail(DetailView):
26
26
template_name = "tag/detail.html"
27
27
28
28
29
- class TagCreate (View ):
29
+ class TagCreate (CreateView ):
30
30
"""Create new Tags via HTML form"""
31
31
32
- def get ( self , request ):
33
- """Display an HTML form"""
34
- context = { " form" : TagForm (), "update" : False }
35
- return render ( request , "tag/form.html" , context )
32
+ form_class = TagForm
33
+ model = Tag
34
+ template_name = "tag/ form.html"
35
+ extra_context = { "update" : False }
36
36
37
- def post (self , request ):
38
- """Handle Form submission: save Tag"""
39
- tform = TagForm (request .POST )
40
- if tform .is_valid ():
41
- tag = tform .save ()
42
- return redirect (tag .get_absolute_url ())
43
- # invalid data; show form with errors
44
- context = {"form" : tform , "update" : False }
45
- return render (request , "tag/form.html" , context )
46
37
47
-
48
- class TagUpdate (View ):
38
+ class TagUpdate (UpdateView ):
49
39
"""Update a Tag via HTML form"""
50
40
51
- def get (self , request , slug ):
52
- """Display an HTML form with pre-filled data"""
53
- tag = get_object_or_404 (Tag , slug = slug )
54
- context = {
55
- "tag" : tag ,
56
- "form" : TagForm (instance = tag ),
57
- "update" : True ,
58
- }
59
- return render (request , "tag/form.html" , context )
60
-
61
- def post (self , request , slug ):
62
- """Handle Form submission: save Tag"""
63
- tag = get_object_or_404 (Tag , slug = slug )
64
- tform = TagForm (request .POST , instance = tag )
65
- if tform .is_valid ():
66
- tag = tform .save ()
67
- return redirect (tag .get_absolute_url ())
68
- # invalid data; show form with errors
69
- context = {
70
- "tag" : tag ,
71
- "form" : tform ,
72
- "update" : True ,
73
- }
74
- return render (request , "tag/form.html" , context )
75
-
76
-
77
- class TagDelete (View ):
41
+ form_class = TagForm
42
+ model = Tag
43
+ template_name = "tag/form.html"
44
+ extra_context = {"update" : True }
45
+
46
+
47
+ class TagDelete (DeleteView ):
78
48
"""Confirm and delete a Tag via HTML Form"""
79
49
80
- def get (self , request , slug ):
81
- """Display an HTML form to confirm removal"""
82
- tag = get_object_or_404 (Tag , slug = slug )
83
- return render (
84
- request , "tag/confirm_delete.html" , {"tag" : tag }
85
- )
86
-
87
- def post (self , request , slug ):
88
- """Delete Tag"""
89
- tag = get_object_or_404 (Tag , slug = slug )
90
- tag .delete ()
91
- return redirect (reverse ("tag_list" ))
50
+ model = Tag
51
+ template_name = "tag/confirm_delete.html"
52
+ success_url = reverse_lazy ("tag_list" )
92
53
93
54
94
55
class StartupList (ListView ):
0 commit comments