52 lines
1.5 KiB
Python
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__'
|