Skip to content

Commit 80bf6ad

Browse files
committed
管理员可以上传附件到未发表的文章,上传后自动跳转
1 parent 8949cb2 commit 80bf6ad

File tree

2 files changed

+43
-5
lines changed

2 files changed

+43
-5
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<!DOCTYPE html>
2+
{% load staticfiles %}
3+
<html lang="zh-CN">
4+
<head>
5+
<meta charset="UTF-8">
6+
<meta name='keywords' content="技术博客,低调诺,程序员,码农,">
7+
<meta name='author' content="低调诺">
8+
<meta name='description' content="一个程序员的技术积累,包括各种各样的问题">
9+
<title>低调诺的博客</title>
10+
<link rel="shortcut icon" type="image/x-icon" href="{% static 'blog/img/favicon.ico' %}" media="screen" />
11+
<script type="text/javascript" src="{% static 'blog/js/jquery.min.js' %}"></script>
12+
<script type="text/javascript">
13+
$(function () {
14+
setTimeout(ChangeTime, 1000);
15+
});
16+
function ChangeTime() {
17+
var time;
18+
time = $("#time").text();
19+
time = parseInt(time);
20+
time--;
21+
if (time <= 0) {
22+
window.location.href = window.location.href;
23+
} else {
24+
$("#time").text(time);
25+
setTimeout(ChangeTime, 1000);
26+
}
27+
}
28+
</script>
29+
</head>
30+
<body>
31+
<div>
32+
<h3>{{ upload_info }}</h3>
33+
<h3><span id="time">3</span>秒钟自动跳到文章页面...</h3>
34+
</div>
35+
</body>
36+
</html>

apps/blog/views.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -200,21 +200,23 @@ def get_context_data(self, **kwargs):
200200
@runTime
201201
def upload(request, article_id):
202202
article_url = reverse('blog:detail', args=(article_id,))
203-
result = {'error_code': 0, 'msg': 'upload success'}
203+
result = {"upload_info": "上传成功"}
204204
if request.method == 'GET':
205205
return HttpResponseRedirect(article_url)
206206
else:
207207
target_article = get_object_or_404(Article, pk=article_id)
208-
if target_article.status == 'd':
208+
if target_article.status == 'd' and not request.user.is_superuser:
209209
return HttpResponseRedirect('/')
210210
myfile = request.FILES.get('uploadfile', None)
211211
if not myfile:
212-
return HttpResponse('No upload files!')
212+
result["upload_info"] = 'No upload files!'
213+
return render(request, 'blog/upload.html', result)
213214
myfilename = myfile.name
214215
logger.info('upload filename: %s', myfilename)
215216
filename_error = os.path.sep in myfilename
216217
if filename_error:
217-
return HttpResponse('File name error!')
218+
result["upload_info"] = 'File name error!'
219+
return render(request, 'blog/upload.html', result)
218220
folderpath = os.path.join(ATTACHMENT_PATH, str(article_id))
219221
try:
220222
os.mkdir(folderpath)
@@ -237,7 +239,7 @@ def upload(request, article_id):
237239
target_article.attachment_url = myfilename + '/' \
238240
+ target_article.attachment_url
239241
target_article.save()
240-
return HttpResponse(json.dumps(result))
242+
return render(request, 'blog/upload.html', result)
241243

242244

243245
# arguments can be:login_url, raise_exception

0 commit comments

Comments
 (0)