diff --git a/backend/diary/migrations/0007_comment_creativity_comment_efficiency_and_more.py b/backend/diary/migrations/0007_comment_creativity_comment_efficiency_and_more.py new file mode 100644 index 0000000..afbd664 --- /dev/null +++ b/backend/diary/migrations/0007_comment_creativity_comment_efficiency_and_more.py @@ -0,0 +1,43 @@ +# Generated by Django 4.2.11 on 2026-04-14 12:17 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('diary', '0006_comment_score'), + ] + + operations = [ + migrations.AddField( + model_name='comment', + name='creativity', + field=models.IntegerField(blank=True, help_text='1-10 分', null=True, verbose_name='创新性'), + ), + migrations.AddField( + model_name='comment', + name='efficiency', + field=models.IntegerField(blank=True, help_text='1-10 分', null=True, verbose_name='效率'), + ), + migrations.AddField( + model_name='comment', + name='learning', + field=models.IntegerField(blank=True, help_text='1-10 分', null=True, verbose_name='学习价值'), + ), + migrations.AddField( + model_name='comment', + name='quality', + field=models.IntegerField(blank=True, help_text='1-10 分', null=True, verbose_name='完成质量'), + ), + migrations.AlterField( + model_name='comment', + name='content', + field=models.TextField(blank=True, default='', verbose_name='批注内容'), + ), + migrations.AlterField( + model_name='comment', + name='score', + field=models.IntegerField(blank=True, help_text='1-10 分', null=True, verbose_name='综合评分'), + ), + ] diff --git a/backend/diary/models.py b/backend/diary/models.py index fd6f198..f9199e4 100755 --- a/backend/diary/models.py +++ b/backend/diary/models.py @@ -103,8 +103,15 @@ class Comment(models.Model): content_type = models.CharField('内容类型', max_length=20, choices=CONTENT_TYPE_CHOICES) object_id = models.IntegerField('内容 ID') - content = models.TextField('批注内容') - score = models.IntegerField('评分', null=True, blank=True, help_text='1-10 分') + content = models.TextField('批注内容', blank=True, default='') + score = models.IntegerField('综合评分', null=True, blank=True, help_text='1-10 分') + + # 多维度评分 + quality = models.IntegerField('完成质量', null=True, blank=True, help_text='1-10 分') + efficiency = models.IntegerField('效率', null=True, blank=True, help_text='1-10 分') + creativity = models.IntegerField('创新性', null=True, blank=True, help_text='1-10 分') + learning = models.IntegerField('学习价值', null=True, blank=True, help_text='1-10 分') + created_by = models.CharField('创建者', max_length=100, default='北极星') created_at = models.DateTimeField('创建时间', auto_now_add=True) @@ -114,8 +121,7 @@ class Comment(models.Model): verbose_name_plural = '批注' def __str__(self): - score_text = f' | {self.score}分' if self.score else '' - return f"{self.content_type} #{self.object_id} - {self.created_by}{score_text}" + return f"{self.content_type} #{self.object_id} - {self.created_by}" class Task(models.Model): diff --git a/backend/diary/serializers.py b/backend/diary/serializers.py index a5e4824..e161c95 100755 --- a/backend/diary/serializers.py +++ b/backend/diary/serializers.py @@ -8,7 +8,11 @@ class CommentSerializer(serializers.ModelSerializer): read_only_fields = ['created_at'] extra_kwargs = { 'content': {'required': False}, - 'score': {'required': False} + 'score': {'required': False}, + 'quality': {'required': False}, + 'efficiency': {'required': False}, + 'creativity': {'required': False}, + 'learning': {'required': False} } class ExperienceSerializer(serializers.ModelSerializer):