如何解决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 }}">
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。