Javascript 对于用户的所有图像,只有一个like按钮
我正在构建一个BlogApp,我正在尝试实现一个功能,Javascript 对于用户的所有图像,只有一个like按钮,javascript,python,html,django,Javascript,Python,Html,Django,我正在构建一个BlogApp,我正在尝试实现一个功能,用户可以在一个故事中上传多个图像,我为不同用户上传的每个故事构建一个like按钮。但当我按按钮进入时 喜欢的按钮是显示所有图片上传在一个故事,但我绑显示喜欢的按钮为一个故事的用户和另一个用户张贴的故事,然后显示另一个喜欢的按钮为另一个故事 models.py class Story(models.Model): user = models.ForeignKey(User,on_delete=models.CASCADE,default
用户可以在一个故事中上传多个图像
,我为不同用户上传的每个故事构建一个like按钮。但当我按按钮进入时
喜欢的按钮是显示所有图片上传在一个故事,但我绑显示喜欢的按钮为一个故事的用户和另一个用户张贴的故事,然后显示另一个喜欢的按钮为另一个故事
models.py
class Story(models.Model):
user = models.ForeignKey(User,on_delete=models.CASCADE,default='',null=True)
file = models.ImageField(upload_to='posts',null=True)
likes = models.ManyToManyField(User, related_name='story_like', blank=True)
views.py
def story_like(request, story_id):
post = get_object_or_404(Story, pk=story_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
stories: [
// {% for story in trending %}
Story.buildTimelineItem(
'{{ story }}',
'{{ user.profile.file.url }}',
'{{ story.user }}',
'{{story.id}}',
timestamp(),
[
[
'{{story.id }}-1',
'file',
3,
'{{ story.file.url }}',
'',
],
]
),
// {% endfor %}
],
});
</script>
{% for story in trending %}
<br>
<br>
<div class="card-footer">
<form method="GET" class="likeForm d-inline" action="{% url 'mains:story_like' story.id %}"
data-pk="{{ story.id }}">
<span id="id_likes{{story.id}}">
{% if user in story.likes.all %}
<p style="color:#065FD4;display: inline">{{story.likes.count}}</p>
{% else %}
<p style="color:black;display: inline">{{story.likes.count}}</p>
{% endif %}
</span><button name='submit' type='submit' value="like"> Like </button>
</form>
</div>
{% endfor %}
故事:[
//{%用于趋势分析中的故事%}
Story.buildTimelineItem(
“{{story}}}”,
“{user.profile.file.url}}”,
“{story.user}}”,
{{story.id}},
时间戳(),
[
[
“{story.id}}-1”,
“文件”,
3.
“{story.file.url}}”,
'',
],
]
),
//{%endfor%}
],
});
{%用于趋势分析中的故事%}
{%if用户在story.likes.all%}
{{{story.likes.count}
{%else%}
{{{story.likes.count}
{%endif%}
喜欢
{%endfor%}
在下图中,user_1
和user_2
发布了两个故事,它们都包含2-2个图像,但我尝试只为两个故事显示like按钮,但like按钮是为图像而不是为故事显示的
我不知道我该怎么做。我已经试过很多次了,但它仍然像按钮一样显示图片而不是故事
任何帮助都将不胜感激
先谢谢你