feat: 增加testitem筛选条件

This commit is contained in:
caoqianming 2024-08-07 10:18:11 +08:00
parent be8fbec24e
commit cf7007f8b8
5 changed files with 7 additions and 9 deletions

View File

@ -6,4 +6,4 @@ from apps.qm.models import TestItem
@admin.register(TestItem)
class TestItemAdmin(admin.ModelAdmin):
date_hierarchy = 'create_time'
list_display = ('id', 'name', 'tags')
list_display = ('id', 'name', 'tags', 'mcate_tags', 'field_type', 'choices')

View File

@ -16,11 +16,9 @@ class QuaStatFilter(filters.FilterSet):
class TestItemFilter(filters.FilterSet):
tag = filters.CharFilter(method='filter_tag')
tags__contains = filters.CharFilter(field_name='tags', lookup_expr='contains')
mcate_tags__contains = filters.CharFilter(field_name='mcate_tags', lookup_expr='contains')
class Meta:
model = TestItem
fields = ['tag']
def filter_tag(self, queryset, name, value):
return queryset.filter(tags__contains=value)
fields = ['tags__contains', 'mcate_tags__contains']

View File

@ -43,7 +43,7 @@ class Migration(migrations.Migration):
migrations.AddField(
model_name='testitem',
name='field_type',
field=models.CharField(choices=[('input-number', '数字输入'), ('input-text', '文本输入'), ('select', '单选'), ('selects', '多选')], default='float', max_length=20, verbose_name='字段类型'),
field=models.CharField(choices=[('input-number', '数字输入'), ('input-text', '文本输入'), ('select', '单选'), ('selects', '多选')], default='input-number', max_length=20, verbose_name='字段类型'),
),
migrations.AddField(
model_name='testitem',

View File

@ -50,7 +50,7 @@ class TestItem(CommonAModel):
检测项目
"""
name = models.CharField('名称', max_length=100)
field_type = models.CharField('字段类型', max_length=20, default='float', choices=(
field_type = models.CharField('字段类型', max_length=20, default='input-number', choices=(
('input-number', '数字输入'), ('input-text', '文本输入'), ('select', '单选'), ('selects', '多选')
))
number = models.CharField('编号', max_length=20, default='', blank=True)

View File

@ -39,7 +39,7 @@ class TestItemViewSet(CustomModelViewSet):
queryset = TestItem.objects.all()
serializer_class = TestItemSerializer
filterset_class = TestItemFilter
search_fields = ['tags', 'name', 'number']
search_fields = ['tags', 'name', 'number', 'mcate_tags']
ordering = ['id']