feat: save时调用make_img_x

This commit is contained in:
caoqianming 2023-09-01 16:20:39 +08:00
parent 2491f282a6
commit ada16b9de9
3 changed files with 24 additions and 20 deletions

View File

@ -1,8 +1,14 @@
from rest_framework import serializers
from apps.edu.models import Certificate
from apps.edu.services import make_img_x
class CertificateSerializer(serializers.ModelSerializer):
class Meta:
model = Certificate
fields = '__all__'
read_only_fields = ['create_time', 'update_time', 'create_by', 'update_by', 'is_deleted']
def save(self, **kwargs):
instance = super().save(**kwargs)
make_img_x(instance)
return instance

View File

@ -1,5 +1,19 @@
from PIL import ImageFont, ImageDraw, Image
from django.conf import settings
from apps.edu.models import Certificate
def make_img_x(instance: Certificate):
titles = []
if instance.是否内审员:
titles.append('内审员')
if instance.是否授权签字人:
titles.append('授权签字人')
if instance.是否质量负责人:
titles.append('质量负责人')
if instance.是否最高管理者:
titles.append('最高管理者')
instance.证书地址 = make_img(instance.证书编号, instance.姓名, ''.join(titles))
instance.save()
def make_img(number, name, title):
# 打开底版图片

View File

@ -1,18 +1,15 @@
from django.shortcuts import render
from rest_framework.viewsets import GenericViewSet, ModelViewSet
from rest_framework.viewsets import ModelViewSet
from apps.system.mixins import CreateUpdateCustomMixin
from apps.edu.serializers import CertificateSerializer
from apps.edu.models import Certificate
from rest_framework.decorators import action
from django.db import transaction
from django.conf import settings
from rest_framework.exceptions import ParseError
from rest_framework.response import Response
from openpyxl import load_workbook
from apps.edu.services import make_img
from rest_framework.serializers import Serializer
from django.db import transaction
from rest_framework.permissions import AllowAny
from apps.edu.services import make_img_x
# Create your views here.
class CertificateViewSet(CreateUpdateCustomMixin, ModelViewSet):
@ -34,24 +31,11 @@ class CertificateViewSet(CreateUpdateCustomMixin, ModelViewSet):
return [AllowAny()]
return super().get_permissions()
def make_img_x(self, instance):
titles = []
if instance.是否内审员:
titles.append('内审员')
if instance.是否授权签字人:
titles.append('授权签字人')
if instance.是否质量负责人:
titles.append('质量负责人')
if instance.是否最高管理者:
titles.append('最高管理者')
instance.证书地址 = make_img(instance.证书编号, instance.姓名, ''.join(titles))
instance.save()
def retrieve(self, request, *args, **kwargs):
regen_img = request.query_params.get('regen_img', False)
instance = self.get_object()
if not instance.证书地址 or regen_img:
self.make_img_x(instance)
make_img_x(instance)
serializer = self.get_serializer(instance)
return Response(serializer.data)