37 lines
1.4 KiB
Python
37 lines
1.4 KiB
Python
![]() |
# apps/knowledge_base/serializers.py
|
||
|
from rest_framework import serializers
|
||
|
from apps.knowledge_base.models import KnowledgeBase, KnowledgeBaseDocument
|
||
|
from apps.accounts.models import User
|
||
|
|
||
|
class KnowledgeBaseSerializer(serializers.ModelSerializer):
|
||
|
user_id = serializers.UUIDField(required=False)
|
||
|
creator_name = serializers.SerializerMethodField(read_only=True)
|
||
|
|
||
|
class Meta:
|
||
|
model = KnowledgeBase
|
||
|
fields = [
|
||
|
'id', 'name', 'desc', 'type', 'department', 'group',
|
||
|
'user_id', 'creator_name', 'external_id', 'create_time', 'update_time'
|
||
|
]
|
||
|
read_only_fields = ['id', 'creator_name', 'external_id', 'create_time', 'update_time']
|
||
|
|
||
|
def get_creator_name(self, obj):
|
||
|
try:
|
||
|
user = User.objects.get(id=obj.user_id)
|
||
|
return user.name
|
||
|
except User.DoesNotExist:
|
||
|
return "未知用户"
|
||
|
|
||
|
def create(self, validated_data):
|
||
|
validated_data['user_id'] = self.context['request'].user.id
|
||
|
return super().create(validated_data)
|
||
|
|
||
|
class KnowledgeBaseDocumentSerializer(serializers.ModelSerializer):
|
||
|
class Meta:
|
||
|
model = KnowledgeBaseDocument
|
||
|
fields = [
|
||
|
'id', 'knowledge_base', 'document_id', 'document_name',
|
||
|
'external_id', 'status', 'uploader_name', 'create_time'
|
||
|
]
|
||
|
read_only_fields = ['id', 'document_id', 'external_id', 'status', 'create_time']
|
||
|
|