46 lines
1.3 KiB
Python
46 lines
1.3 KiB
Python
from rest_framework import serializers
|
|
from news.models import News
|
|
|
|
|
|
class NewsSerializer(serializers.ModelSerializer):
|
|
image_url = serializers.SerializerMethodField()
|
|
preview_image_url = serializers.SerializerMethodField()
|
|
description = serializers.SerializerMethodField()
|
|
title = serializers.SerializerMethodField()
|
|
template = serializers.SerializerMethodField()
|
|
|
|
class Meta:
|
|
model = News
|
|
fields = (
|
|
"state",
|
|
"template",
|
|
"image_url",
|
|
"preview_image_url",
|
|
"title",
|
|
"description",
|
|
"slug",
|
|
"news_type"
|
|
)
|
|
|
|
def get_template(self, obj):
|
|
return obj.template
|
|
|
|
def get_title(self, obj):
|
|
return f'{"en-GB": {obj.title}}'
|
|
|
|
def get_description(self, obj):
|
|
if not hasattr(obj, "body"):
|
|
return ""
|
|
else:
|
|
return obj.body
|
|
|
|
def get_image_url(self, obj):
|
|
if not hasattr(obj, "attachment_file_name") or obj.attachment_file_name is None:
|
|
return ""
|
|
return obj.attachment_file_name
|
|
|
|
def get_preview_image_url(self, obj):
|
|
if not hasattr(obj, "attachment_file_name") or obj.attachment_file_name is None:
|
|
return ""
|
|
return obj.attachment_file_name
|