add creation
自由创作:新增 Creation 模型(继承 Task,display 自动递增)与 /api/creation/ 路由,支持增删改和代码保存,只有创作者本人和超管可访问。 自由创作不进入提交/评分体系;prompt 的两个 WebSocket consumer 连接时校验 can_access_task。补充 task/tests.py 覆盖上述行为。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
37
task/migrations/0010_alter_task_task_type_creation.py
Normal file
37
task/migrations/0010_alter_task_task_type_creation.py
Normal file
@@ -0,0 +1,37 @@
|
||||
# Generated by Django 6.0.1 on 2026-08-14 15:13
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('task', '0009_task_example_css_task_example_html_task_example_js'),
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='task',
|
||||
name='task_type',
|
||||
field=models.CharField(choices=[('challenge', '挑战'), ('tutorial', '教程'), ('creation', '创作')], editable=False, max_length=20, verbose_name='类型'),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Creation',
|
||||
fields=[
|
||||
('task_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='task.task')),
|
||||
('html', models.TextField(blank=True, default='', verbose_name='HTML代码')),
|
||||
('css', models.TextField(blank=True, default='', verbose_name='CSS代码')),
|
||||
('js', models.TextField(blank=True, default='', verbose_name='JS代码')),
|
||||
('owner', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='creations', to=settings.AUTH_USER_MODEL, verbose_name='创作者')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': '创作',
|
||||
'verbose_name_plural': '创作',
|
||||
'ordering': ('-created',),
|
||||
},
|
||||
bases=('task.task',),
|
||||
),
|
||||
]
|
||||
Reference in New Issue
Block a user