diff --git a/announcement/views.py b/announcement/views.py index 654d91a..cdcd8a0 100644 --- a/announcement/views.py +++ b/announcement/views.py @@ -1,15 +1,23 @@ # coding=utf-8 from rest_framework.views import APIView +from django.shortcuts import render from utils.shortcuts import serializer_invalid_response, error_response, success_response -from account.models import User from utils.shortcuts import paginate from .models import Announcement from .serializers import (CreateAnnouncementSerializer, AnnouncementSerializer, EditAnnouncementSerializer) +def announcement_page(request, announcement_id): + try: + announcement = Announcement.objects.get(id=announcement_id, visible=True) + except Announcement.DoesNotExist: + return render(request, "utils/error.html", {"error": u"模板不存在"}) + return render(request, "oj/announcement/announcement.html", {"announcement": announcement}) + + class AnnouncementAdminAPIView(APIView): def post(self, request): """ diff --git a/oj/urls.py b/oj/urls.py index 9e4f08d..03fb4ee 100644 --- a/oj/urls.py +++ b/oj/urls.py @@ -26,6 +26,7 @@ urlpatterns = [ url(r'^api/admin/announcement/$', AnnouncementAdminAPIView.as_view(), name="announcement_admin_api"), url(r'^api/admin/user/$', UserAdminAPIView.as_view(), name="user_admin_api"), url(r'^problem/(?P\d+)/$', "problem.views.problem_page", name="problem_page"), + url(r'^announcement/(?P\d+)/$', "announcement.views.announcement_page", name="announcement_page"), url(r'^api/announcements/$', AnnouncementAPIView.as_view(), name="announcement_list_api"), url(r'^api/users/$', UserAPIView.as_view(), name="user_list_api"), diff --git a/template/oj/announcement/announcement.html b/template/oj/announcement/announcement.html new file mode 100644 index 0000000..18585d6 --- /dev/null +++ b/template/oj/announcement/announcement.html @@ -0,0 +1,22 @@ +{% extends "oj_base.html" %} + +{% block body %} +
+

{{ announcement.title }}

+ +

+ 作者:{{ announcement.created_by }} +     + 创建时间:{{ announcement.create_time }} + {% ifequal announcement.create_time announcement.last_update_time %} + {% else %} + 最后更新:{{ announcement.last_update_time }} + {% endifequal %} +

+ + +
+

{{ announcement.content|safe }}

+
+
+{% endblock %} \ No newline at end of file