修复若干bug,优化若干代码
This commit is contained in:
@@ -0,0 +1 @@
|
||||
|
||||
|
||||
@@ -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,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
|
||||
|
||||
|
||||
@@ -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
@@ -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
@@ -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
|
||||
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user