2017-10-14 5 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にプライマリキーを使用します。 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

内部変数にcreatorに関連するべきでは本当に下さい –

答えて

1

あなたはcomment接頭辞を追加して、コメント

<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

、あなたのHTMLテンプレートを表示しますか?私はこれについて決して考えなかった。どうもありがとうございます! – Anton

+0

あなたを助けてうれしい! –

関連する問題