@@ -18,14 +18,14 @@ def login(request):
18
18
hasher = proto .copy ()
19
19
hasher .update (password .encode ('utf-8' ))
20
20
if hasher .hexdigest () == user .password :
21
+ request .session ['user' ] = user
21
22
return redirect ('sub' )
22
23
except User .DoesNotExist :
23
24
pass
24
25
return render (request , 'demo/login.html' ,
25
26
{'hint' : '用户名或密码错误' })
26
27
27
28
28
-
29
29
def register (request ):
30
30
form = UserForm ()
31
31
if request .method .lower () == 'get' :
@@ -44,29 +44,64 @@ def register(request):
44
44
return render (request , 'demo/register.html' , ctx )
45
45
46
46
47
+ def check_username (request ):
48
+ ctx = {}
49
+ if 'username' in request .GET :
50
+ username = request .GET ['username' ]
51
+ try :
52
+ User .objects .get (username__exact = username )
53
+ ctx ['valid' ] = False
54
+ except User .DoesNotExist :
55
+ ctx ['valid' ] = True
56
+ return HttpResponse (json .dumps (ctx ),
57
+ content_type = 'application/json; charset=utf-8' )
58
+
59
+
47
60
def show_subjects (request ):
48
- ctx = {'subjects_list' : Subject .objects .all ()}
49
- return render (request , 'demo/subject.html' , ctx )
61
+ if 'user' in request .session and request .session ['user' ]:
62
+ ctx = {'subjects_list' : Subject .objects .all ()}
63
+ return render (request , 'demo/subject.html' , ctx )
64
+ else :
65
+ return render (request , 'demo/login.html' ,
66
+ {'hint' : '请先登录!' })
50
67
51
68
52
69
def show_teachers (request , no ):
53
- teachers = Teacher .objects .filter (subject__no = no )
54
- ctx = {'teachers_list' : teachers }
55
- return render (request , 'demo/teacher.html' , ctx )
70
+ if 'user' in request .session and request .session ['user' ]:
71
+ teachers = Teacher .objects .filter (subject__no = no )\
72
+ .select_related ('subject' )
73
+ ctx = {'teachers_list' : teachers }
74
+ return render (request , 'demo/teacher.html' , ctx )
75
+ else :
76
+ return render (request , 'demo/login.html' ,
77
+ {'hint' : '请先登录!' })
56
78
57
79
58
80
def make_comment (request , no ):
59
81
ctx = {'code' : 200 }
60
- try :
61
- teacher = Teacher .objects .get (pk = no )
62
- if request .path .startswith ('/good' ):
63
- teacher .good_count += 1
64
- ctx ['result' ] = f'好评({ teacher .gcount } )'
82
+ if 'user' in request .session and request .session ['user' ]:
83
+ user = request .session ['user' ]
84
+ if user .counter > 0 :
85
+ try :
86
+ teacher = Teacher .objects .get (pk = no )
87
+ if request .path .startswith ('/good' ):
88
+ teacher .good_count += 1
89
+ ctx ['result' ] = f'好评({ teacher .gcount } )'
90
+ else :
91
+ teacher .bad_count += 1
92
+ ctx ['result' ] = f'差评({ teacher .bcount } )'
93
+ teacher .save ()
94
+ user .counter -= 1
95
+ User .objects .filter (username__exact = user .username )\
96
+ .update (counter = user .counter )
97
+ request .session ['user' ] = user
98
+ except Teacher .DoesNotExist :
99
+ ctx ['code' ] = 404
65
100
else :
66
- teacher . bad_count += 1
67
- ctx ['result' ] = f'差评( { teacher . bcount } ) '
68
- teacher . save ()
69
- except Teacher . DoesNotExist :
70
- ctx ['code ' ] = 404
101
+ ctx [ 'code' ] = 403
102
+ ctx ['result' ] = '票数不足 '
103
+ else :
104
+ ctx [ 'code' ] = 302
105
+ ctx ['result ' ] = '请先登录'
71
106
return HttpResponse (json .dumps (ctx ),
72
107
content_type = 'application/json; charset=utf-8' )
0 commit comments