部分优化

This commit is contained in:
caoqianming 2022-11-01 17:43:28 +08:00
parent 27dd44d436
commit faab2f954a
10 changed files with 62 additions and 9 deletions

View File

@ -0,0 +1,21 @@
# Generated by Django 3.2.12 on 2022-11-01 09:39
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('hrm', '0005_alter_employee_phone'),
]
operations = [
migrations.AlterField(
model_name='employee',
name='user',
field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='employee', to=settings.AUTH_USER_MODEL, verbose_name='系统账号'),
),
]

View File

@ -24,7 +24,7 @@ class Employee(CommonBModel):
user = models.OneToOneField(User,
verbose_name='系统账号',
related_name='employee',
on_delete=models.CASCADE, null=True, blank=True)
on_delete=models.SET_NULL, null=True, blank=True)
name = models.CharField('姓名', max_length=20)
phone = models.CharField('手机号', max_length=11, null=True, blank=True)
email = models.EmailField('邮箱号', null=True, blank=True)

View File

@ -46,7 +46,7 @@ class EmployeeViewSet(CustomModelViewSet):
create_serializer_class = EmployeeCreateUpdateSerializer
update_serializer_class = EmployeeCreateUpdateSerializer
partial_update_serializer_class = EmployeeCreateUpdateSerializer
search_fields = ['name', 'number', 'user__username', 'id_number']
search_fields = ['name', 'number', 'user__username', 'id_number', 'id']
ordering = ['-pk']
# def filter_queryset(self, queryset):

View File

@ -0,0 +1,18 @@
# Generated by Django 3.2.12 on 2022-11-01 07:25
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('opm', '0007_auto_20221015_2353'),
]
operations = [
migrations.AddField(
model_name='oplcate',
name='sort',
field=models.PositiveSmallIntegerField(default=1, verbose_name='排序'),
),
]

View File

@ -0,0 +1,17 @@
# Generated by Django 3.2.12 on 2022-11-01 09:39
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('opm', '0008_oplcate_sort'),
]
operations = [
migrations.RemoveField(
model_name='oplcate',
name='workflow',
),
]

View File

@ -13,9 +13,6 @@ class OplCate(CommonAModel):
name = models.CharField('名称', max_length=20, unique=True)
sort = models.PositiveSmallIntegerField('排序', default=1)
description = models.TextField('描述', null=True, blank=True)
workflow = models.ForeignKey('wf.workflow', verbose_name='使用的工作流',
on_delete=models.SET_NULL,
null=True, blank=True)
template_export = models.TextField('导出word模板', null=True, blank=True)
risk_options = models.ManyToManyField('system.dictionary',
verbose_name='风险分析',

View File

@ -30,7 +30,7 @@ class OplCateSerializer(CustomModelSerializer):
class OplCateSimpleSerializer(CustomModelSerializer):
class Meta:
model = OplCate
fields = ['id', 'name', 'workflow', 'code', 'sort']
fields = ['id', 'name', 'code', 'sort']
class OplCateDetailSerializer(CustomModelSerializer):

View File

@ -19,7 +19,7 @@ from django.core.cache import cache
class OplCateViewSet(CustomModelViewSet):
queryset = OplCate.objects.all()
queryset = OplCate.objects.all().order_by('sort')
create_serializer_class = OplCateCreateUpdateSerializer
update_serializer_class = OplCateCreateUpdateSerializer
retrieve_serializer_class = OplCateDetailSerializer

View File

@ -421,7 +421,7 @@ class UserViewSet(CustomModelViewSet):
create_serializer_class = UserCreateSerializer
update_serializer_class = UserUpdateSerializer
filterset_class = UserFilterSet
search_fields = ['username', 'name', 'phone', 'email']
search_fields = ['username', 'name', 'phone', 'email', 'id']
select_related_fields = ['superior', 'belong_dept', 'post']
prefetch_related_fields = ['posts', 'roles', 'depts']
ordering = ['create_time', 'type']

View File

@ -11,7 +11,7 @@ class MyPagination(PageNumberPagination):
def paginate_queryset(self, queryset, request, view=None):
if request.query_params.get('pageoff', None) or request.query_params.get('page', None) == '0':
if queryset.count() < 500:
if queryset.count() < 800:
return None
raise ParseError('单次请求数据量大,请分页获取')
return super().paginate_queryset(queryset, request, view=view)