我构建的评论功能的后,但有错误。当有人评论后,其他用户看到正确的注释体,但不正确的形象和如何更正评论中的逻辑视图?
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})
我建造评论功能后,但它有错误。当有人发表评论帖子时,其他用户看到正确的评论主体,但图片和名称不正确。 我知道为什么我有这个问题(我想),它发生,因为我使用user=request.user
。注意字符串,我评论3行。我认为这会帮助我,但事实并非如此。我在我的网址中使用主键。 url(r'^boards/(?P<pk>\d+)/$', views.board_topics, name='board_topics'),
当我在filter
中使用主键时,它返回给我的用户,它具有与发布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 %}
显示你的HTML模板,请 –