2011-11-05 36 views
1

我使用django-imagekit擺脫一個名爲阿凡達這樣的模型圖片網址:Django的imagekit - 添加靜態鏈接到一個默認的頭像圖片

views.py

my_results = SearchQuerySet().all() 
    try: 
    user_avatar = Avatar.objects.filter(user__in=[x.object.user_id for x in my_results]) 
    except Avatar.DoesNotExist: 
    err='avatar does not exist' 

template.html

{% for result in my_results %} 

<img src="{% for avatar in user_avatar %} 
{% if result.object.user.id = avatar.user.id %} 
{{ avatar.thumbnail_image.url }} 
{% endif %} 
{% endfor %}" 
width="75" height="75" border="0"> 

{{ result.object.time|date:"M d y" }} 

{% endfor %} 

使用上面的代碼,我目前能看到的畫面UR ls用於爲用戶的頭像加載圖片的用戶。

但有一種情況,用戶沒有加載他們的頭像任何圖片,所以我需要添加一個靜態url到默認的頭像圖片,但我不知道如何。

是否可以使用template.html中的模板標籤添加靜態鏈接,以及如何添加?如果沒有,我願意接受任何解決方案。謝謝!

回答

2

爲什麼你在user_avatar上循環?你有保證你只有一個結果?

無論如何我會改變你的代碼。

{% load staticfiles %} 

{% for result in my_results %} 
    {% if avatar %} 
    {% for avatar in user_avatar %} 
     {% if result.object.user.id = avatar.user.id %} 
     <img src="{{ avatar.thumbnail_image.url }}" width="75" height="75" border="0" /> 
    {% endfor %} 
    {% else %} 
     <img src="{% static "images/hi.jpg" %}" width="75" height="75" border="0" /> 
    {% endif %} 

{{ result.object.time|date:"M d y" }} 

{% endfor %} 

請對https://docs.djangoproject.com/en/dev/howto/static-files/#with-a-template-tag

外觀或如果你處理以不同的方式您的靜態文件,你只有把你靜態鏈接到佔位符圖像

編輯

views.py

my_results = SearchQuerySet().all() 
try: 
    user_avatar = Avatar.objects.filter(user__in=[x.object.user_id for x in my_results]) 
except Avatar.DoesNotExist: 
    user_avatar = None 
+0

我嘗試了您的解決方案,但出於某種原因,我在同一時間同時收到了這兩個網址。我得到了現有頭像的鏈接,並通過它的URL到默認頭像。數據庫中沒有頭像的地方我得到了默認頭像的兩個網址。要回答你的問題,是的,我必須保證每個記錄/結果只有一個化身。 – avatar

+0

我已經改變了你的template.html和views.py,你需要檢查你的views.py如果頭像存在該用戶。如果不行,請張貼您的完整視圖,因爲我在這裏做一些假設。 – balsagoth