From b2d3dff75eeca47987e2b4d0fa8a420b60fa1d89 Mon Sep 17 00:00:00 2001 From: maoshen Date: Tue, 14 Apr 2026 12:18:01 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=B7=BB=E5=8A=A0=E7=BB=B4=E5=BA=A6?= =?UTF-8?q?=E8=AF=84=E5=88=86=E5=AD=97=E6=AE=B5=E5=88=B0=20Comment=20?= =?UTF-8?q?=E6=A8=A1=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ..._creativity_comment_efficiency_and_more.py | 43 +++++++++++++++++++ backend/diary/models.py | 14 ++++-- backend/diary/serializers.py | 6 ++- 3 files changed, 58 insertions(+), 5 deletions(-) create mode 100644 backend/diary/migrations/0007_comment_creativity_comment_efficiency_and_more.py 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):