django-imagekit - добавить статическую ссылку на аватар по умолчанию - PullRequest
1 голос
/ 06 ноября 2011

Я использую django-imagekit , чтобы получить URL-адреса изображений от модели под названием Аватар, например:

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 %}

В настоящее время, используя вышеуказанный код, я могу видеть URL-адреса изображений для пользователей, которые загрузили изображение для своих аватаров.

Но есть случай, когда пользователи не загружали изображения для своих аватаров, поэтому мне нужно добавить статический URL к изображению аватара по умолчанию, но я не знаю как.

Можно ли добавить статическую ссылку с помощью тегов шаблона в template.html и как?Если нет, я открыт для любого решения.Спасибо!

1 Ответ

3 голосов
/ 06 ноября 2011

Почему вы перебираете 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

Или, если вы обрабатываете статические файлы по-другому, вам нужно только поместить статическую ссылку на изображение-заполнитель

EDIT

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
...