From 9c8b7212b5b89aa775c0979580ec695e3d74bfc0 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Fri, 10 Sep 2021 13:51:29 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=AE=A2=E5=8D=95view?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hb_server/.gitignore | 3 ++- .../0011_alter_recordformfield_field_type.py | 18 +++++++++++++ hb_server/apps/mtm/models.py | 1 + hb_server/apps/sam/models.py | 1 - hb_server/apps/sam/serializers.py | 26 ++++++++++++++++--- hb_server/apps/sam/views.py | 23 +++++++++++++--- hb_server/apps/system/views.py | 1 - 7 files changed, 63 insertions(+), 10 deletions(-) create mode 100644 hb_server/apps/mtm/migrations/0011_alter_recordformfield_field_type.py diff --git a/hb_server/.gitignore b/hb_server/.gitignore index 8322a3e..4fdd10f 100644 --- a/hb_server/.gitignore +++ b/hb_server/.gitignore @@ -11,4 +11,5 @@ celerybeat-schedule.bak celerybeat-schedule.dat celerybeat-schedule.dir db.sqlite3 -temp/ \ No newline at end of file +temp/ +nohup.out \ No newline at end of file diff --git a/hb_server/apps/mtm/migrations/0011_alter_recordformfield_field_type.py b/hb_server/apps/mtm/migrations/0011_alter_recordformfield_field_type.py new file mode 100644 index 0000000..760d341 --- /dev/null +++ b/hb_server/apps/mtm/migrations/0011_alter_recordformfield_field_type.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.6 on 2021-09-10 05:36 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('mtm', '0010_auto_20210907_1111'), + ] + + operations = [ + migrations.AlterField( + model_name='recordformfield', + name='field_type', + field=models.CharField(choices=[('string', '字符串'), ('int', '整型'), ('float', '浮点'), ('boolean', '布尔'), ('date', '日期'), ('time', '时间'), ('datetime', '日期时间'), ('radio', '单选'), ('checkbox', '多选'), ('select', '单选下拉'), ('selects', '多选下拉'), ('textarea', '文本域')], max_length=50, verbose_name='类型'), + ), + ] diff --git a/hb_server/apps/mtm/models.py b/hb_server/apps/mtm/models.py index 038140c..06f1672 100644 --- a/hb_server/apps/mtm/models.py +++ b/hb_server/apps/mtm/models.py @@ -98,6 +98,7 @@ class RecordFormField(CommonAModel): ('float', '浮点'), ('boolean', '布尔'), ('date', '日期'), + ('time', '时间'), ('datetime', '日期时间'), ('radio', '单选'), ('checkbox', '多选'), diff --git a/hb_server/apps/sam/models.py b/hb_server/apps/sam/models.py index 977621f..3401951 100644 --- a/hb_server/apps/sam/models.py +++ b/hb_server/apps/sam/models.py @@ -37,7 +37,6 @@ class Contract(CommonAModel): number = models.CharField('合同编号', max_length=100, unique=True) amount = models.IntegerField('合同金额', default=0) customer = models.ForeignKey(Customer, verbose_name='关联客户', on_delete=models.CASCADE, related_name='contact_customer') - # contactuser = models.CharField('合同签订人', max_length=100, unique=True, blank=True, null=True) sign_date = models.DateField('签订日期') description = models.CharField('描述', max_length=200, blank=True, null=True) diff --git a/hb_server/apps/sam/serializers.py b/hb_server/apps/sam/serializers.py index 5e9bb74..3ecfd51 100644 --- a/hb_server/apps/sam/serializers.py +++ b/hb_server/apps/sam/serializers.py @@ -1,6 +1,6 @@ from rest_framework import serializers -from .models import Contact, Customer +from .models import Contract, Customer, Order class CustomerSerializer(serializers.ModelSerializer): @@ -20,10 +20,28 @@ class CustomerSimpleSerializer(serializers.ModelSerializer): class ContractSerializer(serializers.ModelSerializer): class Meta: - model = Contact + model = Contract fields = '__all__' +class ContractSimpleSerializer(serializers.ModelSerializer): + class Meta: + model = Contract + fields = ['id', 'name', 'number'] + class ContractCreateUpdateSerializer(serializers.ModelSerializer): class Meta: - model = Contact - fields = ['name', 'number', 'amount', 'customer', 'sign_date', 'description'] \ No newline at end of file + model = Contract + fields = ['name', 'number', 'amount', 'customer', 'sign_date', 'description'] + + +class OrderCreateUpdateSerializer(serializers.ModelSerializer): + class Meta: + model = Order + fields = ['number', 'customer', 'contract', 'product', 'count', 'delivery_date'] + +class OrderSerializer(serializers.ModelSerializer): + contract_ = ContractSimpleSerializer(source='contract', read_only=True) + customer_ = CustomerSimpleSerializer(source='customer', read_only=True) + class Meta: + model = Order + fields = '__all__' \ No newline at end of file diff --git a/hb_server/apps/sam/views.py b/hb_server/apps/sam/views.py index d85c19f..8f66873 100644 --- a/hb_server/apps/sam/views.py +++ b/hb_server/apps/sam/views.py @@ -1,5 +1,5 @@ -from apps.sam.serializers import ContractCreateUpdateSerializer, ContractSerializer, CustomerCreateUpdateSerializer, CustomerSerializer -from apps.sam.models import Contract, Customer +from apps.sam.serializers import ContractCreateUpdateSerializer, ContractSerializer, CustomerCreateUpdateSerializer, CustomerSerializer, OrderCreateUpdateSerializer, OrderSerializer +from apps.sam.models import Contract, Customer, Order from rest_framework.viewsets import ModelViewSet from apps.system.mixins import CreateUpdateCustomMixin from django.shortcuts import render @@ -38,4 +38,21 @@ class ContractViewSet(CreateUpdateCustomMixin, ModelViewSet): def get_serializer_class(self): if self.action in ['create', 'update']: return ContractCreateUpdateSerializer - return ContractSerializer \ No newline at end of file + return ContractSerializer + +class OrderViewSet(CreateUpdateCustomMixin, ModelViewSet): + """ + 订单-增删改查 + """ + perms_map = {'*': '*'} + queryset = Order.objects.select_related('contract', 'customer').all() + serializer_class = OrderSerializer + search_fields = ['number', 'product'] + filterset_fields = [] + ordering_fields = ['create_time'] + ordering = ['-create_time'] + + def get_serializer_class(self): + if self.action in ['create', 'update']: + return OrderCreateUpdateSerializer + return OrderSerializer \ No newline at end of file diff --git a/hb_server/apps/system/views.py b/hb_server/apps/system/views.py index cc9842d..a05fb3f 100644 --- a/hb_server/apps/system/views.py +++ b/hb_server/apps/system/views.py @@ -380,7 +380,6 @@ class FaceLogin(CreateAPIView): filepath = settings.BASE_DIR +'/temp/' + filename +'.png' with open(filepath, 'wb') as f: data = tran64(request.data.get('base64').replace(' ', '+')) - # data = request.data.get('base64') f.write(base64.urlsafe_b64decode(data)) picture_of_me = face_recognition.load_image_file(settings.BASE_DIR +'/temp/me.png') my_face_encoding = face_recognition.face_encodings(picture_of_me)[0]