prototype

This commit is contained in:
michail 2019-10-22 17:11:45 +05:00
parent 786ee03d8e
commit 5043462095

View File

@ -6,12 +6,14 @@ from django.conf import settings
class NewsSerializer(serializers.ModelSerializer):
image_url = serializers.SerializerMethodField()
preview_image_url = serializers.SerializerMethodField()
description = serializers.SerializerMethodField()
title = serializers.SerializerMethodField()
template = serializers.SerializerMethodField()
state = serializers.IntegerField(source="state")
# image_url = serializers.CharField()
# preview_image_url = serializers.CharField()
attachment_file_name = serializers.CharField(allow_null=True)
# body = serializers.CharField(allow_null=True, source="description")
body = serializers.CharField(allow_null=True)
title = serializers.CharField()
template = serializers.CharField()
state = serializers.CharField()
created_at = serializers.DateTimeField(source="start", format='%m-%d-%Y %H:%M:%S')
class Meta:
@ -20,57 +22,102 @@ class NewsSerializer(serializers.ModelSerializer):
"created_at",
"state",
"template",
"image_url",
"preview_image_url",
# "image_url",
# "preview_image_url",
"attachment_file_name",
"title",
"description",
"body",
"slug",
"news_type",
"playlist"
)
def validate(self, data):
data["state"] = self.get_state(data)
data["template"] = self.get_template(data)
data["title"] = self.get_title(data)
data["description"] = self.get_description(data)
data["image_url"] = self.get_image_url(data)
data["preview_image_url"] = self.get_preview_image_url(data)
data.pop("attachment_file_name")
data.pop("body")
return data
def create(self, validated_data):
validated_data['state'] = self.get_state(validated_data)
# validated_data['state'] = self.get_state(validated_data)
return News.objects.create(**validated_data)
def get_template(self, obj):
if obj.template == "main":
if obj["template"] == "main":
return News.MAIN
elif obj.template == "main.pdf.erb":
elif obj["template"] == "main.pdf.erb":
return News.MAIN_PDF_ERB
else:
return News.NEWSPAPER
# if obj.template == "main":
# return News.MAIN
# elif obj.template == "main.pdf.erb":
# return News.MAIN_PDF_ERB
# else:
# return News.NEWSPAPER
def get_state(self, obj):
if obj.state == "published":
if obj["state"] == "published":
return News.PUBLISHED
elif obj.state == "hidden":
elif obj["state"] == "hidden":
return News.HIDDEN
elif obj.state == "published_exclusive":
elif obj["state"] == "published_exclusive":
return News.PUBLISHED_EXCLUSIVE
else:
return News.WAITING
# if obj.state == "published":
# return News.PUBLISHED
# elif obj.state == "hidden":
# return News.HIDDEN
# elif obj.state == "published_exclusive":
# return News.PUBLISHED_EXCLUSIVE
# else:
# return News.WAITING
# django.db.utils.IntegrityError: "start" NOT NULL
# def get_start(self, obj):
# # return obj.created_at
# return datetime.datetime.now().isoformat()
def get_title(self, obj):
return f'{"en-GB": {obj.title}}'
tit = obj.get("title")
return {"en-GB": tit}
# return f'{"en-GB": {obj.title}}'
def get_description(self, obj):
if not hasattr(obj, "body"):
return ""
else:
return obj.body
# return {"en-GB": {obj["body"]}}
desc = obj.get("body")
return {"en-GB": desc}
# 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:
if not obj.get("attachment_file_name"):
return ""
return obj.attachment_file_name
if len(obj.get("attachment_file_name"))>200:
return obj.get("attachment_file_name")[:200]
return obj.get("attachment_file_name")
# 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:
if not obj.get("attachment_file_name"):
return ""
return obj.attachment_file_name
if len(obj.get("attachment_file_name"))>200:
return obj.get("attachment_file_name")[:200]
return obj.get("attachment_file_name")
# if not hasattr(obj, "attachment_file_name") or obj.attachment_file_name is None:
# return ""
# return obj.attachment_file_name