Python Django用户对象无法显示
目标是在用户的个人资料页面上显示用户的图像。我收到的当前错误消息是“'Images'对象不可编辑” views.pyPython Django用户对象无法显示,python,django,object,Python,Django,Object,目标是在用户的个人资料页面上显示用户的图像。我收到的当前错误消息是“'Images'对象不可编辑” views.py 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)}
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 %}
{%if图像%}
{%else%}
//其他代码
{%endif%}
由于使用的是get
,它不返回queryset
,因此它不可iterable
如果您使用了过滤器
,那么for循环
就会发生{%if images%}
{%else%}
//其他代码
{%endif%}
由于使用的是get
,它不返回queryset
,因此它不可iterable
如果您使用了
filter
,那么for循环将发生而不是传递给上下文单个对象的图像列表,您需要将get
替换为filter
,以返回图像queryset。您还需要使用user\u id
获取所有用户文件,而不是按id
进行过滤:
args = {'user': user, 'images': Images.objects.filter(user_id=user.id)}
return render(request, 've/cp/profile.html', args)
您需要将get
替换为filter
以返回图像queryset,而不是将图像列表传递给上下文单个对象。您还需要使用user\u id
获取所有用户文件,而不是按id
进行过滤:
args = {'user': user, 'images': Images.objects.filter(user_id=user.id)}
return render(request, 've/cp/profile.html', args)
啊,非常感谢。我以前也尝试过filter,但括号内的对象肯定总是错误的。我也在尝试其他事情。啊,非常感谢。我以前也尝试过filter,但括号内的对象肯定总是错误的。我也在尝试其他事情。
args = {'user': user, 'images': Images.objects.filter(user_id=user.id)}
return render(request, 've/cp/profile.html', args)