【问题标题】:How to use local default image for django-gravatar?如何为 django-gravatar 使用本地默认图像?
【发布时间】:2013-02-25 15:58:28
【问题描述】:

我正在使用 django-gravatar,我想知道如何显示本地图像以用作默认图像。有办法吗?

我已阅读文档以使用GRAVATAR_DEFAULT_IMAGE,但在static/ 目录中指定图像的路径似乎不起作用。是否只针对其他网站的在线图片?

谢谢!

编辑

我正在使用以下配置:

STATIC_URL = '/static/'
GRAVATAR_DEFAULT_IMAGE = STATIC_URL + 'img/StartMyProjects_100.png'

终于用Hack解决了问题:

<img class="media-object" src="
{% if profile.gravatar_email %}
    {% gravatar_for_email profile.gravatar_email %}
{% else %}
    /static/img/StartMyProjects_100.png
{% endif %}"
alt="{{ profile.full_name }}">

【问题讨论】:

  • 给我们config 中您设置GRAVATAR_DEFAULT_IMAGE 的行。确保此网址可访问。尝试将图像链接作为静态资产放在 gravatar 旁边,然后单击它以验证它是否正确提供
  • 这不是我要的!我已经知道如何为给定的用户/电子邮件显示图像。我想要的是显示默认图像。
  • 我已经在我的 settings.py @catherine 我知道我可以修改库或使用自定义模板标签中添加了我正在使用的配置,但如果可能的话,我不希望这样做! :)
  • 好的,我阅读了 gravatar 的文档。据说是用d=或者default=参数,不是GRAVATAR_DEFAULT_IMAGE?
  • 是的,这就是 settings.py 中的这个变量应该做的事情。您设置此变量的值,然后库会为您构建 URL。事实上,django-avatar 正在为本地图像构建以下错误 url:“gravatar.com/avatar/d41d8cd98f00b204e9800998ecf8427e/…”。在这里你可以看到如何使用默认值,但 url 应该只是:“/static/img/StartMyProjects_100.png”

标签: django gravatar


【解决方案1】:

为了解决这个问题,如已编辑的问题中所述,我实际上使用了 if-else(在 Django 中)。也许有人知道这样做的更好方法,但这对我有用!

<img class="media-object" src="
{% if profile.gravatar_email %}
    {% gravatar_for_email profile.gravatar_email %}
{% else %}
    /static/img/StartMyProjects_100.png
{% endif %}"
alt="{{ profile.full_name }}">

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-21
    • 1970-01-01
    • 1970-01-01
    • 2013-11-26
    • 1970-01-01
    相关资源
    最近更新 更多