refactor: update user field in Tool and ToolFolder models to allow null values and set on delete

This commit is contained in:
wxg0103 2025-07-04 15:04:29 +08:00
parent 8842319805
commit e4a8047a05
2 changed files with 29 additions and 4 deletions

View File

@ -0,0 +1,25 @@
# Generated by Django 5.2.3 on 2025-07-04 07:03
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('tools', '0001_initial'),
('users', '0001_initial'),
]
operations = [
migrations.AlterField(
model_name='tool',
name='user',
field=models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, to='users.user'),
),
migrations.AlterField(
model_name='toolfolder',
name='user',
field=models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, to='users.user'),
),
]

View File

@ -11,7 +11,7 @@ class ToolFolder(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')
@ -35,7 +35,7 @@ class ToolType(models.TextChoices):
class Tool(AppModelMixin):
id = models.UUIDField(primary_key=True, max_length=128, default=uuid.uuid7, editable=False, verbose_name="主键id")
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)
name = models.CharField(max_length=64, verbose_name="工具名称")
desc = models.CharField(max_length=128, verbose_name="描述")
code = models.CharField(max_length=102400, verbose_name="python代码")
@ -46,7 +46,7 @@ class Tool(AppModelMixin):
scope = models.CharField(max_length=20, verbose_name='可用范围', choices=ToolScope.choices,
default=ToolScope.WORKSPACE)
tool_type = models.CharField(max_length=20, verbose_name='工具类型', choices=ToolType.choices,
default=ToolType.CUSTOM, db_index=True)
default=ToolType.CUSTOM, db_index=True)
template_id = models.UUIDField(max_length=128, verbose_name="模版id", null=True, default=None)
folder = models.ForeignKey(ToolFolder, on_delete=models.DO_NOTHING, verbose_name="文件夹id", default='default')
workspace_id = models.CharField(max_length=64, verbose_name="工作空间id", default="default", db_index=True)
@ -54,4 +54,4 @@ class Tool(AppModelMixin):
label = models.CharField(max_length=128, verbose_name="标签", null=True)
class Meta:
db_table = "tool"
db_table = "tool"