1

我正在使用django-imagekit从名为 Avatar 的模型中获取图像 url,如下所示:

视图.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'

模板.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 添加到默认头像图片,但我不知道如何。

是否可以使用 template.html 中的模板标签添加静态链接以及如何添加?如果不是,我愿意接受任何解决方案。谢谢!

4

1 回答 1

3

为什么你要遍历 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

或者,如果您以不同的方式处理静态文件,您只需将静态链接放入占位符图像

编辑

视图.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
于 2011-11-05T21:01:57.487 回答