TemplateSyntaxError:变量'user.profile.photo'是无效的来源

问题描述

我无法通过链接访问。我正在使用easy-thumbnail框架,并且为用户列表创建了简单视图以列出所有现有用户。 错误消息:

django.template.exceptions.TemplateSyntaxError:变量 'user.profile.photo'是无效的来源。

Django Traceback让我进入了这个视图。

views.py文件:

@login_required
def user_list(request):
    users = User.objects.filter(is_active=True)
    return render(request,'account/user/list.html',{'section': 'people','users': users})

urls.py文件:

path('users/',views.user_list,name='user_list'),

模板list.html:

{% extends "base.html" %}
{% load thumbnail %}

{% block title %}People{% endblock %}

{% block content %}
  <h1>People</h1>
  <div id="people-list">
    {% for user in users %}
      <div class="user">
        <a href="{{ user.get_absolute_url }}">
          <img src="{% thumbnail user.profile.photo 180x180 %}">
        </a>
        <div class="info">
          <a href="{{ user.get_absolute_url }}" class="title">
            {{ user.get_full_name }}
          </a>
        </div>
      </div>
    {% endfor %}
  </div>
{% endblock %}

来自base.html的示例代码:

 <li {% if section == "people" %}class="selected"{% endif %}>
 <a href="{% url "user_list" %}">People</a>
</li>

models.py:

class Profile(models.Model):
    user = models.OneToOneField(settings.AUTH_USER_MODEL,on_delete=models.CASCADE)
    date_of_birth = models.DateField(blank=True,null=True)
    photo = models.ImageField(upload_to='users/%Y/%m/%d/',blank=True)

    def __str__(self):
        return f'Profile for user {self.user.username}'

谢谢您的帮助。

解决方法

查看了文档https://easy-thumbnails.readthedocs.io/en/latest/usage/#templates。从对象(通常是文件字段)创建缩略图。我尝试过,它有助于解决我的问题:

 <img src="{{ user.profile.photo.url }}">

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...