From c01ddfdcef9adc89903c5ad3e0355e17b7880477 Mon Sep 17 00:00:00 2001 From: shaohuzhang1 Date: Tue, 5 Mar 2024 14:52:02 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=9F=A5=E8=AF=86=E5=BA=93=E5=90=8D?= =?UTF-8?q?=E7=A7=B0=E6=B7=BB=E5=8A=A0=E7=94=A8=E6=88=B7=E7=BB=B4=E5=BA=A6?= =?UTF-8?q?=E5=94=AF=E4=B8=80=E6=80=A7=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/dataset/serializers/dataset_serializers.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/apps/dataset/serializers/dataset_serializers.py b/apps/dataset/serializers/dataset_serializers.py index 89cda6371..338485844 100644 --- a/apps/dataset/serializers/dataset_serializers.py +++ b/apps/dataset/serializers/dataset_serializers.py @@ -18,7 +18,7 @@ from urllib.parse import urlparse from django.contrib.postgres.fields import ArrayField from django.core import validators from django.db import transaction, models -from django.db.models import QuerySet +from django.db.models import QuerySet, Q from drf_yasg import openapi from rest_framework import serializers @@ -291,7 +291,8 @@ class DataSetSerializers(serializers.ModelSerializer): self.CreateBaseSerializers(data=instance).is_valid() dataset_id = uuid.uuid1() user_id = self.data.get('user_id') - + if QuerySet(DataSet).filter(user_id=user_id, name=instance.get('name')).exists(): + raise AppApiException(500, "知识库名称重复!") dataset = DataSet( **{'id': dataset_id, 'name': instance.get("name"), 'desc': instance.get('desc'), 'user_id': user_id}) @@ -352,6 +353,8 @@ class DataSetSerializers(serializers.ModelSerializer): self.is_valid(raise_exception=True) self.CreateWebSerializers(data=instance).is_valid(raise_exception=True) user_id = self.data.get('user_id') + if QuerySet(DataSet).filter(user_id=user_id, name=instance.get('name')).exists(): + raise AppApiException(500, "知识库名称重复!") dataset_id = uuid.uuid1() dataset = DataSet( **{'id': dataset_id, 'name': instance.get("name"), 'desc': instance.get('desc'), 'user_id': user_id, @@ -626,6 +629,9 @@ class DataSetSerializers(serializers.ModelSerializer): :return: """ self.is_valid() + if QuerySet(DataSet).filter(user_id=user_id, name=dataset.get('name')).exclude( + id=self.data.get('id')).exists(): + raise AppApiException(500, "知识库名称重复!") _dataset = QuerySet(DataSet).get(id=self.data.get("id")) DataSetSerializers.Edit(data=dataset).is_valid(dataset=_dataset) if "name" in dataset: