diff --git a/Apps/comments/serializers.py b/Apps/comments/serializers.py index 9d57096..d553ef5 100644 --- a/Apps/comments/serializers.py +++ b/Apps/comments/serializers.py @@ -1,25 +1,27 @@ from rest_framework import serializers from .models import * +from utils.get_error_msg import get_error_msg class CommentsInfo(serializers.ModelSerializer): class Meta: model = Comments - fields = ['content', 'post_time'] + fields = ['id', 'content', 'post_time'] post_time = serializers.DateTimeField(label="发布时间", required=False) content = serializers.CharField(label="弹幕内容", max_length=50, required=True) + def validate_content(self, value): ban = ['!', '@', '#', '$', '%', '^', '&', '*', '(', ')', "_", "-"] for i in ban: if i in value: - raise serializers.ValidationError('非法字符') + raise serializers.ValidationError(code='40001', detail=get_error_msg(40001)) if len(value) > 50: - raise serializers.ValidationError("弹幕过长") + raise serializers.ValidationError(code='40002', detail=get_error_msg(40002)) elif len(value) == 0: - raise serializers.ValidationError("输入不能为空") + raise serializers.ValidationError(code='40003', detail=get_error_msg(40003)) return value diff --git a/Apps/comments/views.py b/Apps/comments/views.py index 3443607..a587bde 100644 --- a/Apps/comments/views.py +++ b/Apps/comments/views.py @@ -7,6 +7,7 @@ from rest_framework.response import Response from .models import * from .serializers import CommentsInfo from django.utils import timezone +from utils.get_error_msg import get_error_msg # Create your views here. @@ -21,11 +22,11 @@ class comments(APIView): except: data['msg'] = serializer.error_messages if len(data['data']) == 0: - data['msg'] = 'error' - data['code'] = "40000" + data['msg'] = get_error_msg(40005) + data['code'] = 40005 else: - data['msg'] = "success" - data['code'] = "20000" + data['msg'] = get_error_msg(20000) + data['code'] = 20000 return Response(data=data) @@ -34,12 +35,12 @@ class comments(APIView): serializer = CommentsInfo(data=request.data) if not serializer.is_valid(raise_exception=True): data['msg'] = serializer.error_messages - data['code'] = "40000" + data['code'] = 50000 return Response(data=data) serializer.validated_data['post_time'] = timezone.now().replace(microsecond=0) serializer.save() data['data'] = serializer.validated_data data['msg'] = "success" - data['code'] = "20000" + data['code'] = 20000 return Response(data=data) diff --git a/Apps/work/serializers.py b/Apps/work/serializers.py new file mode 100644 index 0000000..90a4fe3 --- /dev/null +++ b/Apps/work/serializers.py @@ -0,0 +1,17 @@ +from rest_framework import serializers +from .models import * + + +class HistoryInfoSerializer(serializers.ModelSerializer): + class Meta: + model = Works + fields = '__all__' + grade = serializers.CharField(label="年级", required=True) + name = serializers.CharField(label="事件名称", max_length=30, required=True) + description = serializers.CharField(label="事件描述", max_length=200, required=True) + img = serializers.ImageField(label="图片", required=False) + + def validate_grade(self, value): + if not (2010 < value <= 2021): + raise serializers.ValidationError("不合法输入") + return value \ No newline at end of file diff --git a/Apps/work/urls.py b/Apps/work/urls.py new file mode 100644 index 0000000..33a66de --- /dev/null +++ b/Apps/work/urls.py @@ -0,0 +1,12 @@ +from django.contrib import admin +from django.urls import path +from . import views +from django.conf.urls.static import static +from ITShowPlatform import settings + + +urlpatterns = [ + path('work/', views.work.as_view()), +] + +urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) \ No newline at end of file diff --git a/ITShowPlatform/urls.py b/ITShowPlatform/urls.py index 1388e13..5a6af80 100644 --- a/ITShowPlatform/urls.py +++ b/ITShowPlatform/urls.py @@ -23,6 +23,7 @@ urlpatterns = [ path('v1/api/', include('Apps.comments.urls')), path('v1/api/', include('Apps.history.urls')), path('v1/api/', include('Apps.enroll.urls')), + path('v1/api/', include('Apps.work.urls')), path(r'^api-auth/', include('rest_framework.urls')), re_path(r'^media/(?P.*)', serve, {"document_root": settings.MEDIA_ROOT}), ] diff --git a/utils/get_error_msg.py b/utils/get_error_msg.py index f9fe2c4..9bfab1c 100644 --- a/utils/get_error_msg.py +++ b/utils/get_error_msg.py @@ -5,5 +5,10 @@ def get_error_msg(code="20000"): "50403": "Forbidden", "40000": "请求方法错误", "40001": "JSON解析错误", + "40002": "非法字符", + "40003": "弹幕过长", + "40004": "输入不能为空", + "40005": "返回评论数为0", + "40006": "", } return error_set.get(str(code))