如何获得 Cloudinary 对象的绝对 url
How to get absolute url of a Cloudinary Obejct
我在我的 Django 应用程序中使用 Cloudinary。但是,我得到这样的输出:
{
"post": "Test",
"image_field": "image/upload/v1613308988/cizqjtpk59j5orvl2l5e.jpg"
}
我的模特:
class Image(models.Model):
post = models.ForeignKey(Post, on_delete=models.CASCADE, related_name="image_field", default=None)
image_field = CloudinaryField('image')
def __str__(self):
return self.post.title
我的序列化器:
class ImageSerializer(serializers.ModelSerializer):
post = serializers.StringRelatedField()
class Meta:
model = Image
fields = ["post", "image_field"]
我的观点:
class ImageViewSet(viewsets.ModelViewSet):
serializer_class = ImageSerializer
queryset = Image.objects.all()
filter_backends = [DjangoFilterBackend]
filter_fields = ['post', 'image_type']
def get_permissions(self):
if self.request.method in permissions.SAFE_METHODS:
return [permissions.IsAuthenticatedOrReadOnly()]
return [permissions.IsAdminUser()]
感谢您的帮助。 :)
@Zayyan Masud - 看起来 Cloudinary 正在返回路径而不是整个 URL。你有根 URL 例如 https://cloudinary.app.com 或类似的东西吗
您可以将根 URL 存储在您的设置中,然后当您收到 image_path 时将其保存在您的 image_field 中。然后当你想在你的模板中加载图像时,你可以像这样连接它们
我会写一个这样的模型方法
def get_image_url(self):
return'{}{}'.format(settings.CLOUDINARY_ROOT_URL,self.image_field)
然后在您的模板中,您只需调用
- <img src='{{obj.get_image_url}}' />
我在我的 Django 应用程序中使用 Cloudinary。但是,我得到这样的输出:
{
"post": "Test",
"image_field": "image/upload/v1613308988/cizqjtpk59j5orvl2l5e.jpg"
}
我的模特:
class Image(models.Model):
post = models.ForeignKey(Post, on_delete=models.CASCADE, related_name="image_field", default=None)
image_field = CloudinaryField('image')
def __str__(self):
return self.post.title
我的序列化器:
class ImageSerializer(serializers.ModelSerializer):
post = serializers.StringRelatedField()
class Meta:
model = Image
fields = ["post", "image_field"]
我的观点:
class ImageViewSet(viewsets.ModelViewSet):
serializer_class = ImageSerializer
queryset = Image.objects.all()
filter_backends = [DjangoFilterBackend]
filter_fields = ['post', 'image_type']
def get_permissions(self):
if self.request.method in permissions.SAFE_METHODS:
return [permissions.IsAuthenticatedOrReadOnly()]
return [permissions.IsAdminUser()]
感谢您的帮助。 :)
@Zayyan Masud - 看起来 Cloudinary 正在返回路径而不是整个 URL。你有根 URL 例如 https://cloudinary.app.com 或类似的东西吗 您可以将根 URL 存储在您的设置中,然后当您收到 image_path 时将其保存在您的 image_field 中。然后当你想在你的模板中加载图像时,你可以像这样连接它们
我会写一个这样的模型方法
def get_image_url(self):
return'{}{}'.format(settings.CLOUDINARY_ROOT_URL,self.image_field)
然后在您的模板中,您只需调用
- <img src='{{obj.get_image_url}}' />