From 701ee2737fdad5168d6a90ba6e07a3a825b86a9a Mon Sep 17 00:00:00 2001 From: vFeng <1914007838@qq.com> Date: Tue, 6 May 2025 14:42:40 +0000 Subject: [PATCH 1/2] =?UTF-8?q?[feat]=E5=A2=9E=E5=8A=A0=E4=B8=8D=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E6=A8=A1=E7=B3=8A=E6=9F=A5=E8=AF=A2=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=EF=BC=8C=E5=9C=A8=E6=9F=90=E4=BA=9B=E6=83=85?= =?UTF-8?q?=E5=86=B5=E4=B8=8B=E5=B8=8C=E6=9C=9B=E6=9F=90=E4=BA=9B=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E9=BB=98=E8=AE=A4=E8=BF=9B=E8=A1=8C=E7=B2=BE=E7=A1=AE?= =?UTF-8?q?=E5=8C=B9=E9=85=8D=E8=80=8C=E4=B8=8D=E6=98=AF=E6=A8=A1=E7=B3=8A?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=E7=9A=84=E6=97=B6=E5=80=99=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: vFeng <1914007838@qq.com> --- backend/dvadmin/utils/filters.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/backend/dvadmin/utils/filters.py b/backend/dvadmin/utils/filters.py index f61fc62e..cda9c2e6 100644 --- a/backend/dvadmin/utils/filters.py +++ b/backend/dvadmin/utils/filters.py @@ -336,6 +336,7 @@ class CustomDjangoFilterBackend(DjangoFilterBackend): filters = OrderedDict() fields = cls.get_fields() undefined = [] + not_auto_lookup_fields = getattr(view, "not_auto_lookup_fields", []) for field_name, lookups in fields.items(): field = get_model_field(cls._meta.model, field_name) @@ -353,6 +354,8 @@ class CustomDjangoFilterBackend(DjangoFilterBackend): isinstance(field, (models.CharField)) and filterset_fields == "__all__" and lookups == ["exact"] + and field.name not in not_auto_lookup_fields + ): lookups = ["icontains"] for lookup_expr in lookups: -- Gitee From bb79d05855c6d3accee82afcb7b70fe86f2d1f12 Mon Sep 17 00:00:00 2001 From: vFeng <1914007838@qq.com> Date: Tue, 6 May 2025 14:43:52 +0000 Subject: [PATCH 2/2] =?UTF-8?q?[feat]=E5=A2=9E=E5=8A=A0=E4=B8=8D=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E6=A8=A1=E7=B3=8A=E6=9F=A5=E8=AF=A2=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=EF=BC=8C=E5=9C=A8=E6=9F=90=E4=BA=9B=E6=83=85?= =?UTF-8?q?=E5=86=B5=E4=B8=8B=E5=B8=8C=E6=9C=9B=E6=9F=90=E4=BA=9B=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E9=BB=98=E8=AE=A4=E8=BF=9B=E8=A1=8C=E7=B2=BE=E7=A1=AE?= =?UTF-8?q?=E5=8C=B9=E9=85=8D=E8=80=8C=E4=B8=8D=E6=98=AF=E6=A8=A1=E7=B3=8A?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=E7=9A=84=E6=97=B6=E5=80=99=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: vFeng <1914007838@qq.com> --- backend/dvadmin/utils/viewset.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/backend/dvadmin/utils/viewset.py b/backend/dvadmin/utils/viewset.py index 42948b1a..18960d1a 100644 --- a/backend/dvadmin/utils/viewset.py +++ b/backend/dvadmin/utils/viewset.py @@ -34,6 +34,7 @@ class CustomModelViewSet(ModelViewSet, ImportSerializerMixin, ExportSerializerMi (3)filter_fields = '__all__' 默认支持全部model中的字段查询(除json字段外) (4)import_field_dict={} 导入时的字段字典 {model值: model的label} (5)export_field_label = [] 导出时的字段 + (6)not_auto_lookup_fields = [] 不进行自动创建lookup的字段 """ values_queryset = None ordering_fields = '__all__' @@ -45,6 +46,7 @@ class CustomModelViewSet(ModelViewSet, ImportSerializerMixin, ExportSerializerMi permission_classes = [CustomPermission] import_field_dict = {} export_field_label = {} + not_auto_lookup_fields = [] def filter_queryset(self, queryset): for backend in set(set(self.filter_backends) | set(self.extra_filter_class or [])): -- Gitee