add chat
This commit is contained in:
@@ -29,13 +29,21 @@ def create_submission(request, payload: SubmissionIn):
|
||||
创建一个新的提交
|
||||
"""
|
||||
task = get_object_or_404(Task, id=payload.task_id)
|
||||
|
||||
conversation = None
|
||||
if payload.conversation_id:
|
||||
from prompt.models import Conversation
|
||||
conversation = get_object_or_404(
|
||||
Conversation, id=payload.conversation_id, user=request.user
|
||||
)
|
||||
conversation.is_active = False
|
||||
conversation.save(update_fields=["is_active"])
|
||||
Submission.objects.create(
|
||||
user=request.user,
|
||||
task=task,
|
||||
html=payload.html,
|
||||
css=payload.css,
|
||||
js=payload.js,
|
||||
conversation=conversation,
|
||||
)
|
||||
|
||||
|
||||
|
||||
20
submission/migrations/0003_submission_conversation.py
Normal file
20
submission/migrations/0003_submission_conversation.py
Normal file
@@ -0,0 +1,20 @@
|
||||
# Generated by Django 6.0.1 on 2026-03-04 11:03
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('prompt', '0001_initial'),
|
||||
('submission', '0002_remove_submission_referee_alter_submission_score_and_more'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='submission',
|
||||
name='conversation',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='submissions', to='prompt.conversation', verbose_name='对话'),
|
||||
),
|
||||
]
|
||||
@@ -8,6 +8,7 @@ from django.dispatch import receiver # 导入receiver
|
||||
|
||||
from account.models import Profile, RoleChoices, User
|
||||
from task.models import Task
|
||||
from prompt.models import Conversation
|
||||
|
||||
|
||||
class Submission(TimeStampedModel):
|
||||
@@ -26,6 +27,10 @@ class Submission(TimeStampedModel):
|
||||
html = models.TextField(null=True, blank=True, verbose_name="HTML代码")
|
||||
css = models.TextField(null=True, blank=True, verbose_name="CSS代码")
|
||||
js = models.TextField(null=True, blank=True, verbose_name="JS代码")
|
||||
conversation = models.ForeignKey(
|
||||
Conversation, on_delete=models.SET_NULL, null=True, blank=True,
|
||||
related_name="submissions", verbose_name="对话"
|
||||
)
|
||||
|
||||
class Meta:
|
||||
ordering = ("-created",)
|
||||
|
||||
@@ -8,6 +8,7 @@ class SubmissionIn(Schema):
|
||||
html: Optional[str] = None
|
||||
css: Optional[str] = None
|
||||
js: Optional[str] = None
|
||||
conversation_id: Optional[UUID] = None
|
||||
|
||||
|
||||
class SubmissionOut(Schema):
|
||||
@@ -23,6 +24,7 @@ class SubmissionOut(Schema):
|
||||
html: Optional[str] = None
|
||||
css: Optional[str] = None
|
||||
js: Optional[str] = None
|
||||
conversation_id: Optional[UUID] = None
|
||||
created: str
|
||||
modified: str
|
||||
|
||||
@@ -38,6 +40,7 @@ class SubmissionOut(Schema):
|
||||
"task_type": submission.task.task_type,
|
||||
"score": submission.score,
|
||||
"my_score": rating_dict.get(submission.id, 0),
|
||||
"conversation_id": submission.conversation_id,
|
||||
"created": submission.created.isoformat(),
|
||||
"modified": submission.modified.isoformat(),
|
||||
}
|
||||
@@ -57,6 +60,7 @@ class SubmissionOut(Schema):
|
||||
"html": submission.html,
|
||||
"css": submission.css,
|
||||
"js": submission.js,
|
||||
"conversation_id": submission.conversation_id,
|
||||
"created": submission.created.isoformat(),
|
||||
"modified": submission.modified.isoformat(),
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user