Files
ItemManagerWebsite/src/backend/memo/serializers.py
T

33 lines
1.2 KiB
Python

from rest_framework import serializers
from .models import Memo, MemoImage
class MemoImageSerializer(serializers.ModelSerializer):
class Meta:
model = MemoImage
fields = ['id', 'image', 'uploaded_at', 'alt_text']
class MemoSerializer(serializers.ModelSerializer):
images = MemoImageSerializer(many=True, read_only=True)
content_preview = serializers.ReadOnlyField()
created_by_name = serializers.CharField(source='created_by.username', read_only=True)
class Meta:
model = Memo
fields = ['id', 'title', 'content', 'content_preview', 'created_by', 'created_by_name',
'created_at', 'updated_at', 'is_active', 'images']
read_only_fields = ['created_by', 'created_at', 'updated_at']
def create(self, validated_data):
validated_data['created_by'] = self.context['request'].user
return super().create(validated_data)
class MemoListSerializer(serializers.ModelSerializer):
content_preview = serializers.ReadOnlyField()
created_by_name = serializers.CharField(source='created_by.username', read_only=True)
class Meta:
model = Memo
fields = ['id', 'title', 'content_preview', 'created_by_name', 'updated_at']