Echo-Z/home/views.py

86 lines
2.7 KiB
Python

from django.shortcuts import render, HttpResponse
from home.models import *
from comment.models import *
from siteconfig.models import *
# Create your views here.
def get_site_config():
siteconf = SiteConfig.objects.all()[0]
siteconfig = {
'title': siteconf.site_name,
'site_author_name': siteconf.site_author_name,
'site_author_qq': siteconf.site_author_qq,
"site_author_email": siteconf.site_author_email,
"icp": siteconf.icp,
}
return siteconfig
def get_friendship_links():
friendship_links = []
FriendshipLinks = FriendshipLink.objects.all()
for link in FriendshipLinks:
friendship_links.append({"link": link.friendship_site_link,"name": link.friendship_site_name})
return friendship_links
def index(request):
artchle = Articles.objects.all()
artchles = {
"artchles": [],
"site_config": get_site_config(),
"FriendshipLinks": get_friendship_links()
}
for i in artchle:
a = {
"id":i.id,
"title": i.title,
"abstract": i.abstract,
"created": i.created,
"stat": i.stat,
"read": i.read,
}
artchles["artchles"].append(a)
return render(request, 'index.html', context=artchles)
def archives(request, id):
i = Articles.objects.get(id=id)
i.read += 1
i.save()
previous_article = Articles.objects.filter(id__lt=id).order_by('-id').first()
previous_id = previous_article.id if previous_article else id
previous_id_title = previous_article.title if previous_article else "暂无上一篇"
next_article = Articles.objects.filter(id__gt=id).order_by('id').first()
next_id = next_article.id if next_article else id
next_id_title = next_article.title if next_article else "暂无下一篇"
comments = Comment.objects.filter(archives_id=id).order_by("-comment_time").all()
a = {
"id": i.id,
"title": i.title,
"abstract": i.abstract,
"created": i.created,
"stat": i.stat,
"read": i.read,
"content": i.content,
"author": i.author,
"site_config": get_site_config(),
"previous":{
"id": previous_id,
"title": previous_id_title,
},"next":{
"id": next_id,
"title": next_id_title,
},"comments": [],
"FriendshipLinks": get_friendship_links()
}
print(a)
for c in comments:
com = {
"id": c.id,
"comment_Content": c.comment_content,
"comment_User": c.comment_user,
"comment_Time": c.comment_time,
"qq": c.qq,
}
a["comments"].append(com)
return render(request, 'archives.html', a)