fix delete
This commit is contained in:
@@ -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
|
||||
|
||||
20
prompt/migrations/0006_message_submission_cascade_delete.py
Normal file
20
prompt/migrations/0006_message_submission_cascade_delete.py
Normal 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'),
|
||||
),
|
||||
]
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user