2017-10-29 133 views
0

我有一個允許用戶上傳圖片以及圖片url的表單。取決於他們使用哪個頁面上的圖像src應該是上傳的圖像或來自URL的圖像。Django {%if%}語句

這裏的形式:

class ProductForm(forms.ModelForm): 
    class Meta: 
     model = Product 
     fields = ['name', 'description', 'url', 'product_type', 'price', 'image', 'image_url'] 
     labels = { 
      'name': 'Product Name', 
      'url': 'Product URL', 
      'product_type': 'Product Type', 
      'description': 'Product Description', 
      'image': 'Product Image', 
      'image_url': 'Product Image URL', 
      'price': 'Product Price' 
     } 
     widgets = { 
      'description': Textarea(attrs={'rows': 5}), 
     } 

我有兩個問題進行梳理。第一個是,在圖像需要顯示我有以下頁面上:

<img class="img-fluid" {% if product.image.url %}src="{{ product.image.url }}" {% else %} src="{{ product.image_url }}" {% endif %} alt="" /> 

只有「product.image.url」的圖像顯示。我想我在這裏困惑自己,所以在尋求幫助。

第二件事是隻允許用戶上傳和圖像或使用圖像的URL - 下一個名單,但現在,我想弄清楚如何解決這個問題。

+0

爲src爲空product.image_url? –

+0

到目前爲止,它是image.url或image_url - 不是兩個 - 是否有意義? – Steve

+0

我只是不明白這個問題。你的意思是說,product.image_url值沒有出現在html中,或者它出現了,但圖像沒有顯示? –

回答

0

如果你只是想顯示外部鏈接的圖像,而不是圖像本身,那麼你可以:

{% if product.image.url %} 
<img class="img-fluid" src="{{ product.image.url }}" alt="" /> 
{% else %} 
    {% if product.image_url %} 
     <a href="{{ product.image_url }}">{{ product.image_url }}</a> 
    {% else %} 
     <a href="">{{ product.image_url }}>Sorry, no link for image!</a> 
    {% endif %} 
{% endif %} 
+0

謝謝 - 但重點是,如果本地圖像不可用},那麼外部圖像被拉入。現在用戶可以上傳圖片並輸入一個外部圖片網址 - 一旦我解決了這個問題,我將把邏輯放在只有一個可以使用的邏輯中。 – Steve

+0

對不起,但有不同的意見,你反駁自己,這就是爲什麼我不清楚問題 –

+0

可能你沒有注意到我沒有src = {{product.image_url}}在我的代碼? –