Использование Embedly с Django Rest Framework
Я начинаю этот проект, используя Django Rest Framework в качестве бэкенда для сборки Rest Api. Всякий раз, когда пользователь публикует статус, я хочу проверить, есть ли у него ссылка, а затем использовать Embedly для получения информации из URL. Вот мой код
мой сериализатор
class PostSerializer(serializers.ModelSerializer):
user = UserPublicSerializer(read_only=True)
url = serializers.SerializerMethodField()
class Meta:
model = Post
fields =[
'id', # ?
'user',
'content',
'code',
'url',
]
read_only_fields = ['user', 'url']
def get_url(self, obj):
request = self.context['request']
url = request.data.get('url')
client = Embedly('174a6178b2894201a888b82e0f3c4c9a')
url = client.oembed('http://instagram.com/p/BL7ti/')
print(url)
return url
def validate(self, data):
content = data.get("content", None)
if content == "":
raise serializers.ValidationError("Content or image is required.")
return data
мой взгляд
class PostAPIView(mixins.CreateModelMixin, generics.ListAPIView):
permission_classes = [permissions.AllowAny]
serializer_class = PostSerializer
queryset = Post.objects.all()
def post(self, request, *args, **kwargs):
return self.create(request, *args, **kwargs)
def perform_create(self, serializer):
serializer.save(user=self.request.user)
Знайте, проблема в том, что когда я хочу получить доступ к URL-адресу в бэкэнде после использования embedly, это дает мне это (print (url) возвращает это)
<Oembed http://instagram.com/p/BL7ti/>
Поэтому я не могу использовать его для получения информации. Но ответ во внешнем интерфейсе возвращает правильный объект со всеми необходимыми значениями (заголовок, описание, эскиз и т. Д.). Я новичок в Django. Я не понимаю, зачем мне нужен доступ эти данные в бэкэнде тоже, как я могу это сделать?