fix delete

This commit is contained in:
2026-04-16 01:32:42 -06:00
parent 6ca5e4b6ea
commit 99f680814e
4 changed files with 37 additions and 20 deletions

View File

@@ -109,7 +109,7 @@ def delete_message_pair(request, message_id: int):
"""
asst_msg = get_object_or_404(Message, id=message_id, role="assistant")
if asst_msg.conversation.user != request.user:
if asst_msg.conversation.user != request.user and request.user.role != RoleChoices.SUPER:
raise HttpError(403, "只能删除自己的消息")
# Find the preceding user message

View File

@@ -0,0 +1,20 @@
# Generated by Django 6.0.1 on 2026-04-16 06:15
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('prompt', '0005_message_add_submission_fk'),
('submission', '0010_remove_conversation_fk'),
]
operations = [
migrations.AlterField(
model_name='message',
name='submission',
field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='source_message', to='submission.submission'),
),
]

View File

@@ -1,7 +1,5 @@
import uuid
from django.db import models
from django.db.models.signals import pre_delete
from django.dispatch import receiver
from django_extensions.db.models import TimeStampedModel
from account.models import User
from task.models import Task
@@ -38,7 +36,7 @@ class Message(models.Model):
"submission.Submission",
null=True,
blank=True,
on_delete=models.SET_NULL,
on_delete=models.CASCADE,
related_name="source_message",
)
@@ -47,10 +45,3 @@ class Message(models.Model):
def __str__(self):
return f"[{self.role}] {self.content[:50]}"
@receiver(pre_delete, sender=Message)
def delete_linked_submission(sender, instance, **kwargs):
if instance.submission_id:
from submission.models import Submission
Submission.objects.filter(id=instance.submission_id).delete()