feat: 添加批注功能
后端: - Comment 模型(支持日记/任务/经验三种内容类型) - CommentSerializer 和 CommentViewSet - API: /api/comments/ - 批注 CRUD - API: /api/comments/by_content/?content_type=diary&object_id=1 - 按内容获取批注 - 日记/任务/经验序列化器嵌套显示批注 前端: - 批注样式(comments-section, comment-item) - 添加批注输入框 使用方式: - 北极星可以在任何日记/任务/经验下添加批注 - 批注会显示在内容下方 - 支持查看历史批注
This commit is contained in:
75
add_comment_demo.py
Normal file
75
add_comment_demo.py
Normal file
@@ -0,0 +1,75 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
批注功能演示 - 北极星可以使用这个脚本添加批注
|
||||
"""
|
||||
import os
|
||||
import sys
|
||||
import django
|
||||
|
||||
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'diary_system.settings')
|
||||
sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'backend'))
|
||||
django.setup()
|
||||
|
||||
from diary.models import Comment, DiaryEntry, Task, Experience
|
||||
|
||||
def add_comment(content_type, object_id, content, created_by='北极星'):
|
||||
"""添加批注"""
|
||||
comment = Comment.objects.create(
|
||||
content_type=content_type,
|
||||
object_id=object_id,
|
||||
content=content,
|
||||
created_by=created_by
|
||||
)
|
||||
print(f"✅ 批注已添加:{content_type} #{object_id}")
|
||||
print(f" 内容:{content[:50]}...")
|
||||
return comment
|
||||
|
||||
def show_comments(content_type, object_id):
|
||||
"""查看批注"""
|
||||
comments = Comment.objects.filter(
|
||||
content_type=content_type,
|
||||
object_id=object_id
|
||||
)
|
||||
|
||||
print(f"\n📝 {content_type} #{object_id} 的批注:\n")
|
||||
|
||||
if not comments:
|
||||
print(" 暂无批注")
|
||||
return
|
||||
|
||||
for comment in comments:
|
||||
print(f" [{comment.created_at.strftime('%Y-%m-%d %H:%M')}] {comment.created_by}:")
|
||||
print(f" {comment.content}")
|
||||
print()
|
||||
|
||||
if __name__ == '__main__':
|
||||
# 示例:查看今天的日记
|
||||
print("📖 批注功能演示\n")
|
||||
print("=" * 60)
|
||||
|
||||
# 获取今天的日记
|
||||
from django.utils import timezone
|
||||
today = timezone.now().date()
|
||||
entry = DiaryEntry.objects.filter(date=today).first()
|
||||
|
||||
if entry:
|
||||
print(f"\n今天的日记:{entry.title}")
|
||||
print(f"ID: {entry.id}")
|
||||
|
||||
# 查看批注
|
||||
show_comments('diary', entry.id)
|
||||
|
||||
# 添加示例批注
|
||||
print("\n添加示例批注...")
|
||||
add_comment('diary', entry.id, '今天的日记内容很丰富!继续保持!')
|
||||
|
||||
# 再次查看
|
||||
show_comments('diary', entry.id)
|
||||
else:
|
||||
print("今天还没有日记")
|
||||
|
||||
print("\n" + "=" * 60)
|
||||
print("\n💡 使用方法:")
|
||||
print(" 1. 查看批注:show_comments('diary', 1)")
|
||||
print(" 2. 添加批注:add_comment('diary', 1, '你的批注内容')")
|
||||
print("\n 支持的内容类型:diary, task, experience")
|
||||
Reference in New Issue
Block a user