Skip to content

Commit 2700581

Browse files
committed
django 4.0支持
2 parents 534c42f + f4d7f9e commit 2700581

File tree

15 files changed

+46
-118
lines changed

15 files changed

+46
-118
lines changed

.github/workflows/django.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ jobs:
2626
strategy:
2727
max-parallel: 4
2828
matrix:
29-
python-version: [ 3.7, 3.8, 3.9 ,3.10 ]
29+
python-version: [ 3.8, 3.9 ]
3030

3131
steps:
3232
- name: Start MySQL
@@ -65,7 +65,7 @@ jobs:
6565
strategy:
6666
max-parallel: 4
6767
matrix:
68-
python-version: [ 3.7, 3.8, 3.9,3.10 ]
68+
python-version: [ 3.8, 3.9 ]
6969

7070
steps:
7171
- name: Start MySQL

accounts/views.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ class RegisterView(FormView):
3535
form_class = RegisterForm
3636
template_name = 'account/registration_form.html'
3737

38+
@method_decorator(csrf_protect)
39+
def dispatch(self, *args, **kwargs):
40+
return super(RegisterView, self).dispatch(*args, **kwargs)
41+
3842
def form_valid(self, form):
3943
if form.is_valid():
4044
user = form.save(False)
@@ -149,8 +153,8 @@ def account_result(request):
149153
if type and type in ['register', 'validation']:
150154
if type == 'register':
151155
content = '''
152-
恭喜您注册成功,一封验证邮件已经发送到您 {email} 的邮箱,请验证您的邮箱后登录本站。
153-
'''.format(email=user.email)
156+
恭喜您注册成功,一封验证邮件已经发送到您的邮箱,请验证您的邮箱后登录本站。
157+
'''
154158
title = '注册成功'
155159
else:
156160
c_sign = get_sha256(get_sha256(settings.SECRET_KEY + str(user.id)))

blog/templatetags/blog_tags.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ def custom_markdown(content):
5353
def get_markdown_toc(content):
5454
from djangoblog.utils import CommonMarkdown
5555
body, toc = CommonMarkdown.get_markdown_with_toc(content)
56-
return mark_safe(toc), mark_safe(body)
56+
return mark_safe(toc)
5757

5858

5959
@register.filter(is_safe=True)

blog/tests.py

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@
88
from django.urls import reverse
99
from django.utils import timezone
1010

11-
from djangoblog.utils import get_current_site, get_sha256
1211
from accounts.models import BlogUser
1312
from blog.forms import BlogSearchForm
1413
from blog.models import Article, Category, Tag, SideBar, Links
1514
from blog.templatetags.blog_tags import load_pagination_info, load_articletags
15+
from djangoblog.utils import get_current_site, get_sha256
1616

1717

1818
# Create your tests here.
@@ -98,12 +98,7 @@ def test_validate_article(self):
9898
s = load_articletags(article)
9999
self.assertIsNotNone(s)
100100

101-
rsp = self.client.get('/refresh')
102-
self.assertEqual(rsp.status_code, 302)
103-
104101
self.client.login(username='liangliangyy', password='liangliangyy')
105-
rsp = self.client.get('/refresh')
106-
self.assertEqual(rsp.status_code, 200)
107102

108103
response = self.client.get(reverse('blog:archives'))
109104
self.assertEqual(response.status_code, 200)
@@ -140,9 +135,6 @@ def test_validate_article(self):
140135
response = self.client.get('/links.html')
141136
self.assertEqual(response.status_code, 200)
142137

143-
rsp = self.client.get('/refresh')
144-
self.assertEqual(rsp.status_code, 200)
145-
146138
response = self.client.get('/feed/')
147139
self.assertEqual(response.status_code, 200)
148140

blog/urls.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,4 @@
5555
r'upload',
5656
views.fileupload,
5757
name='upload'),
58-
path(
59-
r'refresh',
60-
views.refresh_memcache,
61-
name='refresh')]
58+
]

blog/views.py

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@
44
import os
55
import uuid
66

7-
from django import forms
87
from django.conf import settings
9-
from django.contrib.auth.decorators import login_required
108
from django.http import HttpResponse, HttpResponseForbidden
119
from django.shortcuts import get_object_or_404
1210
from django.shortcuts import render
@@ -118,17 +116,7 @@ def get_object(self, queryset=None):
118116
return obj
119117

120118
def get_context_data(self, **kwargs):
121-
articleid = int(self.kwargs[self.pk_url_kwarg])
122119
comment_form = CommentForm()
123-
user = self.request.user
124-
# 如果用户已经登录,则隐藏邮件和用户名输入框
125-
if user.is_authenticated and not user.is_anonymous and user.email and user.username:
126-
comment_form.fields.update({
127-
'email': forms.CharField(widget=forms.HiddenInput()),
128-
'name': forms.CharField(widget=forms.HiddenInput()),
129-
})
130-
comment_form.fields["email"].initial = user.email
131-
comment_form.fields["name"].initial = user.username
132120

133121
article_comments = self.object.comment_list()
134122

@@ -313,22 +301,6 @@ def fileupload(request):
313301
return HttpResponse("only for post")
314302

315303

316-
@login_required
317-
def refresh_memcache(request):
318-
try:
319-
320-
if request.user.is_superuser:
321-
from djangoblog.utils import cache
322-
if cache and cache is not None:
323-
cache.clear()
324-
return HttpResponse("ok")
325-
else:
326-
return HttpResponseForbidden()
327-
except Exception as e:
328-
logger.error(e)
329-
return HttpResponse("error")
330-
331-
332304
def page_not_found_view(
333305
request,
334306
exception,

comments/forms.py

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,6 @@
55

66

77
class CommentForm(ModelForm):
8-
url = forms.URLField(label='网址', required=False)
9-
email = forms.EmailField(label='电子邮箱', required=True)
10-
name = forms.CharField(
11-
label='姓名',
12-
widget=forms.TextInput(
13-
attrs={
14-
'value': "",
15-
'size': "30",
16-
'maxlength': "245",
17-
'aria-required': 'true'}))
188
parent_comment_id = forms.IntegerField(
199
widget=forms.HiddenInput, required=False)
2010

comments/tests.py

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -41,34 +41,32 @@ def test_validate_comment(self):
4141
article.status = 'p'
4242
article.save()
4343

44-
commenturl = reverse(
44+
comment_url = reverse(
4545
'comments:postcomment', kwargs={
4646
'article_id': article.id})
4747

48-
response = self.client.post(commenturl,
48+
response = self.client.post(comment_url,
4949
{
5050
'body': '123ffffffffff'
5151
})
5252

53-
self.assertEqual(response.status_code, 200)
53+
self.assertEqual(response.status_code, 302)
5454

5555
article = Article.objects.get(pk=article.pk)
56-
self.assertEqual(len(article.comment_list()), 0)
56+
self.assertEqual(len(article.comment_list()), 1)
5757

58-
response = self.client.post(commenturl,
58+
response = self.client.post(comment_url,
5959
{
6060
'body': '123ffffffffff',
61-
'email': user.email,
62-
'name': user.username
6361
})
6462

6563
self.assertEqual(response.status_code, 302)
6664

6765
article = Article.objects.get(pk=article.pk)
68-
self.assertEqual(len(article.comment_list()), 1)
66+
self.assertEqual(len(article.comment_list()), 2)
6967
parent_comment_id = article.comment_list()[0].id
7068

71-
response = self.client.post(commenturl,
69+
response = self.client.post(comment_url,
7270
{
7371
'body': '''
7472
# Title1
@@ -83,15 +81,13 @@ def test_validate_comment(self):
8381
8482
8583
''',
86-
'email': user.email,
87-
'name': user.username,
8884
'parent_comment_id': parent_comment_id
8985
})
9086

9187
self.assertEqual(response.status_code, 302)
9288

9389
article = Article.objects.get(pk=article.pk)
94-
self.assertEqual(len(article.comment_list()), 2)
90+
self.assertEqual(len(article.comment_list()), 3)
9591
comment = Comment.objects.get(id=parent_comment_id)
9692
tree = parse_commenttree(article.comment_list(), comment)
9793
self.assertEqual(len(tree), 1)

comments/urls.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
app_name = "comments"
66
urlpatterns = [
7-
# url(r'^po456stcomment/(?P<article_id>\d+)$', views.CommentPostView.as_view(), name='postcomment'),
87
path(
98
'article/<int:article_id>/postcomment',
109
views.CommentPostView.as_view(),

comments/views.py

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
# 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
43
from django.http import HttpResponseRedirect
4+
from django.utils.decorators import method_decorator
5+
from django.views.decorators.csrf import csrf_protect
56
from django.views.generic.edit import FormView
67

78
from blog.models import Article
@@ -13,6 +14,10 @@ class CommentPostView(FormView):
1314
form_class = CommentForm
1415
template_name = 'blog/article_detail.html'
1516

17+
@method_decorator(csrf_protect)
18+
def dispatch(self, *args, **kwargs):
19+
return super(CommentPostView, self).dispatch(*args, **kwargs)
20+
1621
def get(self, request, *args, **kwargs):
1722
article_id = self.kwargs['article_id']
1823

@@ -23,16 +28,6 @@ def get(self, request, *args, **kwargs):
2328
def form_invalid(self, form):
2429
article_id = self.kwargs['article_id']
2530
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
3631

3732
return self.render_to_response({
3833
'form': form,
@@ -45,13 +40,9 @@ def form_valid(self, form):
4540

4641
article_id = self.kwargs['article_id']
4742
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']
5143

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("该文章评论已关闭.")
5546
comment = form.save(False)
5647
comment.article = article
5748

0 commit comments

Comments
 (0)