2017-05-18 17 views
1

imagefieldがあります。シリアライザは、私のモデルではDjango Rest Framework - imagefieldが存在しない場合はURLを返しません。

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) 

のようなイメージで説明しています。

私は画像

私はこれをどのように行うことができますが存在しない場合はURLの代わりに何も返さないの方法がありますか?

答えて

2

.urlを呼び出すと、obj.imageNoneの場合は例外が発生します。

次のようにあなたがget_image_urlを更新することができます。

def get_image_url(self, obj): 
    if obj.image: 
     return obj.image.url 
    else: 
     return None 
関連する問題