我为帖子构建了功能评论但有bug。当有人发表评论时,其他用户会看到正确的评论正文,但图片不正确
def p(request, pk):
user = request.user
#user_that_text_comment = User.objects.filter(pk=pk)
topic = get_object_or_404(Topic, pk=pk)
post = get_object_or_404(Post, pk=pk)
comment = Comments.objects.filter(pk=pk)
if request.method == 'POST':
form = CustomCommentForm(request.POST)
if form.is_valid():
comment = form.save(commit=False)
comment.post = post
comment.creator = user
comment.save()
comment = Comments.objects.create(
body=form.cleaned_data.get('body'),
creator=user,
)
return render(request, 'post.html', {'post': post, 'topic': topic, 'comment': comment, 'form': form})
else:
form = CustomCommentForm()
return render(request, 'post.html', {'post': post, 'topic': topic, 'comment': comment, 'form': form})
我为帖子建立了评论功能,但它有bug。当有人发表评论时,其他用户会看到正确的评论正文,但图片和名称不正确。
我知道为什么我有这个问题(我想),它发生了因为我使用user=request.user
。关于我在3行评论的字符串的注意事项。我认为这会对我有所帮助,但事实并非如此。我在我的网址中使用主键。 url(r'^boards/(?P<pk>\d+)/$', views.board_topics, name='board_topics'),
当我在filter
中使用主键时,它会返回给我与post pk具有相同pk的用户。我需要它返回给我创建此评论的用户名和用户图片。
Html模板:
<div class="detailBox">
<div class="titleBox">
<label>{{topic.subject}}</label>
<!--<button type="button" class="close" aria-hidden="true">×</button>-->
</div>
<div class="commentBox">
<img src="{{ MEDIA_URL }}{{ topic.image.url }}" alt="">
<p class="taskDescription">{{ post.message|safe|linebreaks}}</p>
</div>
<div class="actionBox">
<ul class="commentList">
{% for comment in post.comment.all %}
<li>
<div class="commenterImage">
{% if user.profile.profile_img %}
<img src="{{ MEDIA_URL }}{{ user.profile.profile_img.url }}" >
{{ user.username }}
{% else %}
<img src="https://image.freepik.com/free-vector/no-translate-detected_1053-593.jpg">
{{ user.username }}
{% endif %}
</div>
<div class="commentText">
<p class="">{{ comment.body }}</p> <span class="date sub-text">{{comment.created_at}}</span>
</div>
</li>
{% endfor %}
</ul>
<form class="form-inline" role="form" method="post">
{% csrf_token%}
{{form}}
<button type="submit" class="btn btn-default">Add</button>
</form>
</div>
</div>{% endblock %}
答案 0 :(得分:1)
您应该添加comment
前缀,并将creator
与评论中的变量相关联
<li>
<div class="commenterImage">
{% if comment.creator.profile.profile_img %}
<!-- ^^^^^ -->
<img src="{{ MEDIA_URL }}{{ comment.creator.profile.profile_img.url }}" >
<!-- ^^^^^ -->
{{ comment.creator.username }}
<!-- ^^^^^ -->
{% else %}
<img src="https://image.freepik.com/free-vector/no-translate-detected_1053-593.jpg">
{{ user.username }}
{% endif %}
</div>
<div class="commentText">
<p class="">{{ comment.body }}</p> <span class="date sub-text">{{comment.created_at}}</span>
</div>
</li>