1

私は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のテンプレートタグを使用して静的リンクを追加することは可能ですか?そうでなければ、私はどんな解決策にもオープンです。ありがとうございました!

4

1 に答える 1

3

なぜuser_avatarをループしているのですか?結果が1つしかないという保証はありますか?

いずれにせよ、私はあなたのコードを少し変更します。

{% 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
于 2011-11-05T21:01:57.487 に答える