From 79537cade97c884acde533927aebfc9ca460657d Mon Sep 17 00:00:00 2001 From: wxg0103 <727495428@qq.com> Date: Thu, 10 Jul 2025 14:49:27 +0800 Subject: [PATCH] refactor: update user field in application and knowledge models to allow null values and set null on delete --- .../0006_alter_applicationfolder_user.py | 20 +++++++++++++++++++ apps/application/models/application.py | 2 +- .../0004_alter_knowledgefolder_user.py | 20 +++++++++++++++++++ apps/knowledge/models/knowledge.py | 2 +- 4 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 apps/application/migrations/0006_alter_applicationfolder_user.py create mode 100644 apps/knowledge/migrations/0004_alter_knowledgefolder_user.py diff --git a/apps/application/migrations/0006_alter_applicationfolder_user.py b/apps/application/migrations/0006_alter_applicationfolder_user.py new file mode 100644 index 000000000..ef87d9870 --- /dev/null +++ b/apps/application/migrations/0006_alter_applicationfolder_user.py @@ -0,0 +1,20 @@ +# Generated by Django 5.2.4 on 2025-07-10 06:48 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('application', '0005_chat_chat_record_count_chat_mark_sum_chat_star_num_and_more'), + ('users', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='applicationfolder', + name='user', + field=models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, to='users.user'), + ), + ] diff --git a/apps/application/models/application.py b/apps/application/models/application.py index 67bff2b54..e83594c69 100644 --- a/apps/application/models/application.py +++ b/apps/application/models/application.py @@ -21,7 +21,7 @@ class ApplicationFolder(MPTTModel, AppModelMixin): id = models.CharField(primary_key=True, max_length=64, editable=False, verbose_name="主键id") name = models.CharField(max_length=64, verbose_name="文件夹名称") desc = models.CharField(max_length=200, null=True, blank=True, verbose_name="描述") - user = models.ForeignKey(User, on_delete=models.DO_NOTHING, verbose_name="用户id") + user = models.ForeignKey(User, on_delete=models.SET_NULL, db_constraint=False, blank=True, null=True) workspace_id = models.CharField(max_length=64, verbose_name="工作空间id", default="default", db_index=True) parent = TreeForeignKey('self', on_delete=models.DO_NOTHING, null=True, blank=True, related_name='children') diff --git a/apps/knowledge/migrations/0004_alter_knowledgefolder_user.py b/apps/knowledge/migrations/0004_alter_knowledgefolder_user.py new file mode 100644 index 000000000..a8d9259e7 --- /dev/null +++ b/apps/knowledge/migrations/0004_alter_knowledgefolder_user.py @@ -0,0 +1,20 @@ +# Generated by Django 5.2.4 on 2025-07-10 06:48 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('knowledge', '0003_alter_file_source_id_alter_file_source_type'), + ('users', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='knowledgefolder', + name='user', + field=models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, to='users.user'), + ), + ] diff --git a/apps/knowledge/models/knowledge.py b/apps/knowledge/models/knowledge.py index 26d6bea74..796e81074 100644 --- a/apps/knowledge/models/knowledge.py +++ b/apps/knowledge/models/knowledge.py @@ -99,7 +99,7 @@ class KnowledgeFolder(MPTTModel, AppModelMixin): id = models.CharField(primary_key=True, max_length=64, editable=False, verbose_name="主键id") name = models.CharField(max_length=64, verbose_name="文件夹名称") desc = models.CharField(max_length=200, null=True, blank=True, verbose_name="描述") - user = models.ForeignKey(User, on_delete=models.DO_NOTHING, verbose_name="用户id") + user = models.ForeignKey(User, on_delete=models.SET_NULL, db_constraint=False, blank=True, null=True) workspace_id = models.CharField(max_length=64, verbose_name="工作空间id", default="default", db_index=True) parent = TreeForeignKey('self', on_delete=models.DO_NOTHING, null=True, blank=True, related_name='children')