【问题标题】:django-imagekit - add a static link to a default avatar picturedjango-imagekit - 为默认头像图片添加静态链接
【发布时间】:2011-12-22 19:21:22
【问题描述】:

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

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

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

【问题讨论】:

    标签: django django-templates django-views django-imagekit


    【解决方案1】:

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

    【讨论】:

    • 我尝试了您的解决方案,但由于某种原因,我同时获得了两个网址。我正在获取指向现有头像的链接,并通过它获得默认头像的网址。数据库中哪里没有头像我得到两个默认头像的网址。要回答您的问题,是的,我必须保证每条记录/结果只有一个头像。
    • 我已经更改了您的 template.html 和 views.py,如果该用户的头像存在,您需要检查您的 views.py。如果不起作用,请发布您的完整视图,因为我在这里做了一些假设。
    猜你喜欢
    • 2014-01-22
    • 2014-04-30
    • 2011-12-22
    • 2018-05-23
    • 2014-09-01
    • 2011-01-24
    • 2012-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多