mediacms/users/serializers.py

83 wiersze
2.3 KiB
Python

from rest_framework import serializers
from .models import User
class UserSerializer(serializers.ModelSerializer):
url = serializers.SerializerMethodField()
api_url = serializers.SerializerMethodField()
thumbnail_url = serializers.SerializerMethodField()
def get_url(self, obj):
return self.context["request"].build_absolute_uri(obj.get_absolute_url())
def get_api_url(self, obj):
return self.context["request"].build_absolute_uri(
obj.get_absolute_url(api=True)
)
def get_thumbnail_url(self, obj):
return self.context["request"].build_absolute_uri(obj.thumbnail_url())
class Meta:
model = User
read_only_fields = (
"date_added",
"is_featured",
"uid",
"username",
"advancedUser",
"is_editor",
"is_manager",
"email_is_verified",
)
fields = (
"description",
"date_added",
"name",
"is_featured",
"thumbnail_url",
"url",
"api_url",
"username",
"advancedUser",
"is_editor",
"is_manager",
"email_is_verified",
)
class UserDetailSerializer(serializers.ModelSerializer):
url = serializers.SerializerMethodField()
api_url = serializers.SerializerMethodField()
thumbnail_url = serializers.SerializerMethodField()
def get_url(self, obj):
return self.context["request"].build_absolute_uri(obj.get_absolute_url())
def get_api_url(self, obj):
return self.context["request"].build_absolute_uri(
obj.get_absolute_url(api=True)
)
def get_thumbnail_url(self, obj):
return self.context["request"].build_absolute_uri(obj.thumbnail_url())
class Meta:
model = User
read_only_fields = ("date_added", "is_featured", "uid", "username")
fields = (
"description",
"date_added",
"name",
"is_featured",
"thumbnail_url",
"banner_thumbnail_url",
"url",
"username",
"media_info",
"api_url",
"edit_url",
"default_channel_edit_url",
)
extra_kwargs = {"name": {"required": False}}