Использование 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. Я не понимаю, зачем мне нужен доступ эти данные в бэкэнде тоже, как я могу это сделать?

0 ответов

Другие вопросы по тегам