2019-01-07 08:45:53 +00:00
|
|
|
from rest_framework import serializers
|
|
|
|
|
|
|
|
from . import models
|
|
|
|
|
|
|
|
|
|
|
|
class ActorRelatedField(serializers.EmailField):
|
|
|
|
def to_representation(self, value):
|
|
|
|
return value.full_username
|
|
|
|
|
2019-01-09 16:52:14 +00:00
|
|
|
def to_internal_value(self, value):
|
|
|
|
value = super().to_internal_value(value)
|
2019-01-07 08:45:53 +00:00
|
|
|
username, domain = value.split("@")
|
|
|
|
try:
|
|
|
|
return models.Actor.objects.get(
|
|
|
|
preferred_username=username, domain_id=domain
|
|
|
|
)
|
|
|
|
except models.Actor.DoesNotExist:
|
|
|
|
raise serializers.ValidationError("Invalid actor name")
|