Django Rest Framework - 如果imagefield不存在,则不返回url

时间:2017-05-18 19:44:44

标签: django django-rest-framework

我有imagefield。序列化器正在关注

class CategoryWithImagesSerializer(serializers.ModelSerializer):
    image_url = serializers.SerializerMethodField()

    def get_image_url(self, obj):
        return obj.image.url

    class Meta:
        model = Category
        fields = [
            'pk',
            'name',
            'image_url',
        ]

在我的模型中,我有像这样描述的图像

image = models.ImageField(verbose_name='Изображение', upload_to = 'images/', blank=True)

使用此设置时,如果有没有图像的对象,我会崩溃。

如果没有图像,我需要一种不返回网址的方法

我该怎么做?

1 个答案:

答案 0 :(得分:2)

如果.urlobj.image,则呼叫None会引发异常。

您可以按如下方式更新get_image_url

def get_image_url(self, obj):
    if obj.image:
        return obj.image.url
    else:
        return None