gpt4 book ai didi

python - ManyToManyField 渲染中的 auth.user.none 和

转载 作者:行者123 更新时间:2023-12-02 11:39:30 25 4
gpt4 key购买 nike

我尝试显示喜欢我的网站上用 Django 编写的某些图像的用户数量。图像模型如下所示:

class Image(models.Model):
(***)
users_like = models.ManyToManyField(settings.AUTH_USER_MODEL,
related_name='images_liked',
blank=True)

当我在模板中使用时:

{{image.users_like.all}}

我明白了:

查询集[]

当我在模板中使用时

{{image.users_like}}

我明白

auth.User.None

这很奇怪,因为在我的管理页面中我有信息表明有人喜欢这张照片。

下面是我的 View 功能:

def image_detail(request, id, slug):
image = get_object_or_404(Image, id=id, slug=slug)
return render(request,
'images/image/detail.html',
{'section': 'images',
'image': image})

编辑

我的管理页面,在“用户喜欢”部分中显示已经喜欢该照片的用户的用户名。 PrtSc如下:

photyo

完整 block

<h1>{{ image.title }}</h1>
`<p>{{image.users_like.all}}</p>
{% load thumbnail %}
{% thumbnail image.image "300" as im %}
<a href="{{ image.image.url }}">
<img src="{{ im.url }}" class="image-detail">
</a>
{% endthumbnail %}
{% with total_likes=image.users_like.count users_like=image.users_like.all %}
<div class="image-info">
<div>
<span class="count">
<span class="total">{{ total_likes }}</span>
like{{ total_likes|pluralize }}
</span>
<a href="#" data-id="{{ image.id }}" data-action="{% if request.user in users_like %}un{% endif %}like" class="like button">
{% if request.user not in users_like %}
Like
{% else %}
Unlike
{% endif %}
</a>
</div>
{{ image.description|linebreaks }}
</div>

<div class="image-likes">
{% for user in image.users_like.all %}
<div>
<img src="{{ user.profile.photo.url }}">
<p>{{ user.first_name }}</p>
</div>
{% empty %}
Nobody likes this image yet.
{% endfor %}
</div>
{% endwith %}

最佳答案

在上面的评论中回答。调用时 QuerySet 为空。将用户添加到 image.user_like 后,问题消失了。谢谢 Solarissmoke。

关于python - ManyToManyField 渲染中的 auth.user.none 和 <QuerySet []>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59578574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com