rpj创建时创建file

This commit is contained in:
曹前明 2022-06-28 11:05:32 +08:00
parent a9a36ffd88
commit 9e19a65609
3 changed files with 15 additions and 4 deletions

View File

@ -5,7 +5,7 @@ from apps.rpm.models import Rcertificate, Remployee, Rfile, Rparty, Rpjcertifica
from apps.system.models import Dept
from apps.utils.constants import EXCLUDE_FIELDS
from apps.utils.serializers import CustomModelSerializer
from apps.system.serializers import DictSerializer, FileSerializer
from apps.system.serializers import DictSerializer, DictSimpleSerializer, FileSerializer
from rest_framework import serializers
from rest_framework.exceptions import ParseError
from django.db import transaction
@ -200,6 +200,8 @@ class RpjmemberSerializer(CustomModelSerializer):
class RpjfileSerializer(CustomModelSerializer):
file_cate_ = DictSimpleSerializer(source='file_cate', read_only=True)
files_ = FileSerializer(source='files', read_only=True)
class Meta:
model = Rpjfile
fields = '__all__'

View File

@ -3,7 +3,7 @@ from apps.hrm.models import Certificate, Employee
from apps.hrm.serializers import CertificateCreateUpdateSerializer, CertificateSerializer, EmployeeSerializer
from apps.rpm.models import Rcertificate, Remployee, Rparty, Rfile, Rpjfile, Rpjmember, Rpj
from apps.rpm.serializers import RcertificateCreateUpdateSerializer, RcertificateSerializer, RemployeeCreateSerializer, RemployeeSerializer, RpartyAssignSerializer, RpartyCreateUpdateSerializer, RfileListSerializer, RpartySerializer, RpjListSerializer, RpjfileSerializer, RpjfileUpdateSerializer, RpjmemberCreateSerializer, RpjmemberCreatesSerializer, RpjCreateUpdateSerializer, RpjmemberSerializer, RpjmemberUpdateSerializer
from apps.system.models import Post, User, UserPost
from apps.system.models import Dictionary, Post, User, UserPost
from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet
from rest_framework.mixins import CreateModelMixin, ListModelMixin, RetrieveModelMixin, DestroyModelMixin, UpdateModelMixin
from apps.utils.mixins import CustomDestoryModelMixin
@ -129,7 +129,11 @@ class RpjViewSet(CustomModelViewSet):
raise ParseError('请指定相关方')
if not vdata.get('belong_dept', None):
vdata['belong_dept'] = vdata['rparty'].belong_dept
return super().create(request, *args, **kwargs)
ins = super().create(request, *args, **kwargs)
# 同步创建需要提交的资料
for i in Dictionary.objects.filter(type__code='rparty_file').order_by('sort'):
Rpjfile.objects.create(rpj=ins, file_cate=i)
return ins
def update(self, request, *args, **kwargs):
obj = self.get_object()
@ -150,6 +154,8 @@ class RpjmemberViewSet(CustomModelViewSet):
create_serializer_class = RpjmemberCreateSerializer
update_serializer_class = RpjmemberUpdateSerializer
serializer_class = RpjmemberSerializer
select_related_fields = ['rpj']
filterset_fields = ['rpj']
def destroy(self, request, *args, **kwargs):
obj = self.get_object()
@ -163,6 +169,9 @@ class RpjfileViewSet(UpdateModelMixin, DestroyModelMixin, ListModelMixin, Custom
queryset = Rpjfile.objects.all()
update_serializer_class = RpjfileUpdateSerializer
serializer_class = RpjfileSerializer
select_related_fields = ['rpj']
prefetch_related_fields = ['files']
filterset_fields = ['rpj']
def update(self, request, *args, **kwargs):
obj = self.get_object()

View File

@ -32,7 +32,7 @@ class TDevice(BaseModel):
(DEVICE_PANEL, '面板机')
)
type = models.PositiveSmallIntegerField('设备类型', choices=DEVICE_CHOICE)
code = models.CharField('设备唯一标识', max_length=20)
code = models.CharField('设备唯一标识', max_length=20, db_index=True)
location = models.JSONField('位置信息', default=dict,
null=False, blank=True)
area = models.ForeignKey(Area, on_delete=models.CASCADE,