2017-10-14 39 views
1

我构建的评论功能的后,但有错误。当有人评论后,其他用户看到正确的注释体,但不正确的形象和如何更正评论中的逻辑视图?

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">&times;</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

显示你的HTML模板,请 –

回答

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> 
+0

真的吗?我从来没有想过这个。非常感谢! – Anton

+0

很高兴为您效劳! –