修复若干bug,优化若干代码

This commit is contained in:
ladeng07
2022-05-15 01:31:26 +08:00
parent bd36d90a3b
commit f65714f84e
26 changed files with 417 additions and 212 deletions
+1
View File
@@ -0,0 +1 @@
+2
View File
@@ -4,3 +4,5 @@ from django.apps import AppConfig
class WorksConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'apps.work'
verbose_name = "历史作品管理"
+1 -1
View File
@@ -1,4 +1,4 @@
# Generated by Django 3.2.5 on 2022-05-07 01:48
# Generated by Django 3.2.5 on 2022-05-11 14:01
from django.db import migrations, models
+3 -2
View File
@@ -1,6 +1,7 @@
# Generated by Django 3.2.5 on 2022-05-05 21:57
# Generated by Django 3.2.5 on 2022-05-15 00:27
from django.db import migrations, models
import utils.ImageStorage
class Migration(migrations.Migration):
@@ -13,6 +14,6 @@ class Migration(migrations.Migration):
migrations.AlterField(
model_name='works',
name='img',
field=models.ImageField(blank=True, null=True, upload_to='image', verbose_name='图片'),
field=models.ImageField(blank=True, null=True, storage=utils.ImageStorage.ImageStorage(), upload_to='image', verbose_name='图片'),
),
]
+2 -2
View File
@@ -1,5 +1,5 @@
from django.db import models
from utils.ImageStorage import ImageStorage
# Create your models here.
@@ -10,4 +10,4 @@ class Works(models.Model):
grade = models.IntegerField(verbose_name="年份")
name = models.CharField(verbose_name="事件名称", max_length=30)
description = models.CharField(verbose_name="事件描述", max_length=200)
img = models.ImageField(verbose_name="图片", upload_to="image", null=True, blank=True)
img = models.ImageField(verbose_name="图片", upload_to="image", null=True, blank=True,storage=ImageStorage())
+12 -13
View File
@@ -1,21 +1,20 @@
from rest_framework import serializers
from .models import *
from utils.util import get_msg
class WorksInfoSerializer(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 (2002 < value <= 2021):
raise serializers.ValidationError(code='42006', detail={'msg': get_msg(42006),
"code": '42006'})
return value
# 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 (2002 < value <= 2021):
# raise serializers.ValidationError(code='42006', detail={'msg': get_msg(42006),
# "code": '42006'})
# return value
+16
View File
@@ -0,0 +1,16 @@
from django.db.models.signals import pre_save,pre_delete,post_init,post_save,pre_init
from django.dispatch import receiver
from .models import Works
# 修改时,保存图片并删除旧图
# @receiver(post_init, sender=Works)
# def file_path(sender, instance, **kwargs):
# instance._current_image = instance.image
@receiver(pre_save, sender=Works)
def delete_old_image(sender, instance, **kwargs):
print(instance.img)
instance.img.delete(save=True)
+22 -13
View File
@@ -6,32 +6,41 @@ from rest_framework.views import APIView
from rest_framework.response import Response
from .models import Works
from .serializers import WorksInfoSerializer
from utils.get_msg import get_msg
from utils.util import get_msg,get_path
import logging
from rest_framework.generics import GenericAPIView
import configparser,os
from ITShowPlatform.settings import BASE_DIR,MEDIA_URL
from . import signals
conf = configparser.RawConfigParser()
conf.read(os.path.join(BASE_DIR, "config.ini"), encoding="utf-8")
# Create your views here.
class Work(APIView):
class Work(GenericAPIView):
"""获取社团历年的作品"""
def get(self, request):
key = []
data = {"data": key}
for i in range(2002, 2022):
for i in range(2022,2001,-1):
"""temp用来存储每个年级的作品,方便区分年级"""
temp = {}
try:
works_set = Works.objects.filter(grade=i)
if works_set:
serializer = WorksInfoSerializer(works_set, many=True)
temp['grade'] = i
temp['data'] = serializer.data
data['data'].append(temp)
except Exception:
"""如果没有查到数据"""
pass
#try:
works_set = Works.objects.filter(grade=i)
if works_set:
serializer = WorksInfoSerializer(works_set, many=True)
temp['grade'] = i
temp['data'] = serializer.data
for i in temp['data']:
i["img"] = get_path() + i["img"]
data['data'].append(temp)
# except Exception:
# """如果没有查到数据"""
# pass
if len(data['data']) == 0:
"""如果查找的数据为空"""
data['code'] = 45005