Python 仅为用户_1的所有图像显示一个like按钮
我正在构建一个图像库WebApp,我试图为特定用户上传的所有图像只显示一个Python 仅为用户_1的所有图像显示一个like按钮,python,django,django-views,Python,Django,Django Views,我正在构建一个图像库WebApp,我试图为特定用户上传的所有图像只显示一个like按钮 但它为每个用户(用户1)的图像显示like按钮。但我试着只显示像按钮 models.py class Galler(modyels.Model): post_owner = models.ForeignKey(User,default='',null=True,on_delete = models.CASCADE) likes = models.ManyToManyField(User, re
like按钮
但它为每个用户(用户1)的图像显示like按钮
。但我试着只显示像按钮
models.py
class Galler(modyels.Model):
post_owner = models.ForeignKey(User,default='',null=True,on_delete = models.CASCADE)
likes = models.ManyToManyField(User, related_name='gallery_like', blank=True)
views.py
def gallery_like_dislike(request, post_id):
post = get_object_or_404(Post, pk=post_id)
# Like
if request.GET.get('submit') == 'like':
if request.user in post.dislikes.all():
post.dislikes.remove(request.user)
post.likes.add(request.user)
return JsonResponse({'action': 'undislike_and_like'})
elif request.user in post.likes.all():
post.likes.remove(request.user)
return JsonResponse({'action': 'unlike'})
else:
post.likes.add(request.user)
return JsonResponse({'action': 'like_only'})
template.html
{% for video in gallery %}
<div class="card-footer">
<form method="GET" class="likeForm d-inline" action="{% url 'mains:gallery_like_dislike' video.id %}"
data-pk="{{ video.id }}">
<span id="id_likes{{video.id}}">
{% if user in video.likes.all %}
<p style="color:#065FD4;display: inline">{{video.likes.count}}</p>
{% else %}
<p style="color:black;display: inline">{{video.likes.count}}</p>
{% endif %}
</span><button name='submit' type='submit' value="like"><i onclick="myFunction(this)" class="fa fa-thumbs-up"></i>Like</button>
</form>
{% endfor %}
{%用于gallery%%中的视频
{%if用户在video.likes.all%}
{{{video.likes.count}
{%else%}
{{{video.likes.count}
{%endif%}
喜欢
{%endfor%}
假设user_1
发布了6张图片,下面的代码显示了6个相似的按钮,但我试图为所有图片只显示一个相似的按钮
我不知道,我该怎么做
任何帮助都将不胜感激。在您的
模板.html
中,您在for
循环中包含了like按钮-like按钮将被复制为用户拥有的图像的倍。而不是这样做,你应该像按钮一样移动到for
循环之外,你只会得到一个像按钮-简单地说,你应该只用于渲染视频项目&将表单移动到循环之外
但问题是,您的视图等待post/video id检索帖子,并在帖子喜欢/不喜欢中添加用户。您应该通过自动检索每个用户的视频/帖子对象来覆盖此功能。您完全正确,但是如果我从“链接”或“喜欢”按钮中删除post.id,django将如何计算喜欢的次数呢?不确定视频和帖子是否相同。如果在您的数据模型中,post包含多个视频-然后您将
post\u id
传递给请求并增加post
modelslike\u count
。但是,如果每个视频都包含like_count
字段,那么,我想您应该为每个视频复制like按钮?