1
1
# Create your views here.
2
- from django import forms
3
- from django .contrib .auth import get_user_model
2
+ from django .core .exceptions import ValidationError
4
3
from django .http import HttpResponseRedirect
4
+ from django .utils .decorators import method_decorator
5
+ from django .views .decorators .csrf import csrf_protect
5
6
from django .views .generic .edit import FormView
6
7
7
8
from blog .models import Article
@@ -13,6 +14,10 @@ class CommentPostView(FormView):
13
14
form_class = CommentForm
14
15
template_name = 'blog/article_detail.html'
15
16
17
+ @method_decorator (csrf_protect )
18
+ def dispatch (self , * args , ** kwargs ):
19
+ return super (CommentPostView , self ).dispatch (* args , ** kwargs )
20
+
16
21
def get (self , request , * args , ** kwargs ):
17
22
article_id = self .kwargs ['article_id' ]
18
23
@@ -23,16 +28,6 @@ def get(self, request, *args, **kwargs):
23
28
def form_invalid (self , form ):
24
29
article_id = self .kwargs ['article_id' ]
25
30
article = Article .objects .get (pk = article_id )
26
- u = self .request .user
27
-
28
- if self .request .user .is_authenticated :
29
- form .fields .update ({
30
- 'email' : forms .CharField (widget = forms .HiddenInput ()),
31
- 'name' : forms .CharField (widget = forms .HiddenInput ()),
32
- })
33
- user = self .request .user
34
- form .fields ["email" ].initial = user .email
35
- form .fields ["name" ].initial = user .username
36
31
37
32
return self .render_to_response ({
38
33
'form' : form ,
@@ -45,13 +40,9 @@ def form_valid(self, form):
45
40
46
41
article_id = self .kwargs ['article_id' ]
47
42
article = Article .objects .get (pk = article_id )
48
- if not self .request .user .is_authenticated :
49
- email = form .cleaned_data ['email' ]
50
- username = form .cleaned_data ['name' ]
51
43
52
- user = get_user_model ().objects .get_or_create (
53
- username = username , email = email )[0 ]
54
- # auth.login(self.request, user)
44
+ if article .comment_status == 'c' or article .status == 'c' :
45
+ raise ValidationError ("该文章评论已关闭." )
55
46
comment = form .save (False )
56
47
comment .article = article
57
48
0 commit comments