diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index f99f03d..789f53c 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -10,11 +10,6 @@
-
-
-
-
-
@@ -25,56 +20,21 @@
-
-
+
+
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -94,13 +54,9 @@
-
-
-
-
@@ -116,13 +72,14 @@
-
+
-
+
+
@@ -195,6 +152,7 @@
+
1650187914913
@@ -227,7 +185,7 @@
-
+
@@ -263,10 +221,11 @@
-
-
+
+
+
@@ -275,22 +234,26 @@
-
-
+
+
-
-
+
+
+
-
-
+
+
+
-
-
+
+
+
+
@@ -315,14 +278,16 @@
-
-
+
+
-
-
+
+
+
+
@@ -339,5 +304,9 @@
+
+
+
+
\ No newline at end of file
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/settings.py b/ITShowPlatform/settings.py
index 4cbb943..e25e153 100644
--- a/ITShowPlatform/settings.py
+++ b/ITShowPlatform/settings.py
@@ -40,6 +40,7 @@ INSTALLED_APPS = [
'Apps.enroll',
'Apps.history',
'Apps.comments',
+ 'Apps.work',
]
@@ -80,9 +81,11 @@ WSGI_APPLICATION = 'ITShowPlatform.wsgi.application'
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
- 'NAME': 'ITShowPlatform',
+ 'NAME': 'It_show',
+ 'HOST': '127.0.0.1',
+ 'PORT': '3306',
'USER': 'root',
- 'PASSWORD': 'HNXhnx123',
+ 'PASSWORD': 'Qq2442402635*',
}
}
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))