Django用户对象无法显示

问题描述 投票:0回答:2

目标是在其个人资料页面上显示用户图像。我得到的当前错误消息是“'Images'对象不可迭代”。

views.朋友

def view_profile(request, pk=None):
    if pk:
        user = User.objects.get(pk=pk)

    else:
        user = request.user

    args = {'user': user, 'images': Images.objects.get(pk=pk)}

    return render(request, 've/cp/profile.html', args)

profile.html

    {% if images %}
        {% for img in images %}
        <img src="{{ img.image.url }}" class="float-left" style="max-width: 150px">
        {% endif %}
    {% else %}

models.朋友

class Images(models.Model):
    image = models.ImageField(upload_to='profile_image', null=True, default='profile_image/none/no-img.png')
    user = models.ForeignKey(User, on_delete=models.CASCADE,  null=False)
python django object
2个回答
1
投票

您需要将get替换为filter以返回图像查询集,而不是传递给上下文单个对象的图像列表。而不是通过id过滤,你需要使用user_id来获取所有用户的文件:

args = {'user': user, 'images': Images.objects.filter(user_id=user.id)}

return render(request, 've/cp/profile.html', args)

1
投票
{% if images %}

        <img src="{{ img.image.url }}" class="float-left" style="max-width: 150px">

    {% else %}
 // other code
 {% endif %}

因为你正在使用qazxsw poi,它不会返回qazxsw poi,因此它不是get

如果你使用过queryset那么iterable就会发生

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.