Files
icac/crawler/serializers.py
2025-09-23 13:30:03 +08:00

52 lines
1.5 KiB
Python

from rest_framework import serializers
from .models import Website, CrawlTask, CrawledContent, CrawlLog, SearchKeyword, MediaFile
class WebsiteSerializer(serializers.ModelSerializer):
class Meta:
model = Website
fields = '__all__'
class CrawlTaskSerializer(serializers.ModelSerializer):
websites = WebsiteSerializer(many=True, read_only=True)
progress_percentage = serializers.ReadOnlyField()
class Meta:
model = CrawlTask
fields = '__all__'
class MediaFileSerializer(serializers.ModelSerializer):
file_size_display = serializers.ReadOnlyField()
class Meta:
model = MediaFile
fields = '__all__'
class CrawledContentSerializer(serializers.ModelSerializer):
website_name = serializers.CharField(source='website.name', read_only=True)
website_region = serializers.CharField(source='website.region', read_only=True)
task_name = serializers.CharField(source='task.name', read_only=True)
media_files = MediaFileSerializer(many=True, read_only=True)
class Meta:
model = CrawledContent
fields = '__all__'
class CrawlLogSerializer(serializers.ModelSerializer):
website_name = serializers.CharField(source='website.name', read_only=True)
task_name = serializers.CharField(source='task.name', read_only=True)
class Meta:
model = CrawlLog
fields = '__all__'
class SearchKeywordSerializer(serializers.ModelSerializer):
class Meta:
model = SearchKeyword
fields = '__all__'