0

의견을 표시하고 템플릿의 답글을 표시하고 싶습니다. 그러나 문제가 있습니다. 모든 답장에는 다른 답이있을 수 있습니다. 또한 내가 관련된 모든 의견이 저장된 모델을 작업 할 WorksComments의 모델이 : 업데이트코멘트를 표시하는 방법과 장고 템플릿의 답변입니까?

class Comment(models.Model): 
    author = models.ForeignKey(Profile, related_name="c_sender", on_delete=models.CASCADE, unique=False) 
    comment = models.CharField(max_length=500, unique=False) 
    created_date = models.DateTimeField(auto_now_add=True) 
    edited_date = models.DateTimeField(blank=True, null=True) 

    def __str__(self): 
     return self.comment 

    @property 
    def replys(self): 
     return CommentReply.objects.filter(comment_id=self) 


class CommentReply(models.Model): 
    comment_id = models.ForeignKey(Comment, related_name='sender', on_delete=models.CASCADE) 
    reply_id = models.ForeignKey(Comment, related_name='reply', on_delete=models.CASCADE) 

: 아래의 조각은 나의 CommentCommentReply 모델입니다.

comments = WorkComment.objects.filter(work_id=work).all() 
return render(request, 'work.html', {'comments': comments}) 

내 질문에 의견을 표시하고 그 아래에 응답을, 그리고 모든 응답이 나도 그들을 표시 할 다른 replyies이있을 수 있습니다 방법입니다 :

class WorkComment(models.Model): 
    work_id = models.ForeignKey(Work, on_delete=models.CASCADE, related_name='e_exercise', unique=False) 
    comment_id = models.ForeignKey(Comment, related_name='e_comment', unique=False) 

아래의 조각은 내이다.

+0

무엇은보기가 무엇입니까? –

+0

업데이트하고보기를 추가했습니다. – msln

답변

0

먼저해야 할 일 ... 북마크에 넣으세요. https://ccbv.co.uk/

인스턴스의 세부 정보를 표시하려면 여기 Detail View이 필요합니다.

설치 URL을 ...

from django.conf.urls import url 

from work.views import WorkDetailView 

urlpatterns = [ 
    url(r'^(?P<id>[-\d]+)/$', WorkDetailView.as_view(), name='work-detail'), 
] 

그리고보기;

from django.views.generic.detail import DetailView 
from django.utils import timezone 

from work.models import Work 

class WorkDetailView(DetailView): 

    model = Work 

    def get_context_data(self, **kwargs): 
     context = super(WorkDetailView, self).get_context_data(**kwargs) 
     context['comments'] = WorkComment.objects.filter(work_id=self.object.id).all() 
     return context 

그리고 간단한보기 work/work_detail.html 수 있습니다 :

<h1>{{ object.title }}</h1> 
<p>{{ object.content }}</p> 
<h2>Comments</h2> 
{% for comment in comments %} 
    {{ comment }} 
{% endfor %} 
+0

별도의 페이지가 아닙니다. 'work.html' 페이지의 한 부분에 주석을 표시하고 싶습니다. 내보기는보기에서 상속됩니다. 보기에서 상속 한 Class_Based보기에서 어떻게 표시 할 수 있습니까? 감사합니다 – msln

+0

@msln'DetailView'는'View'도 상속받습니다. 위 코드는'work.html'을 렌더링 한 다음 사이드 부분의 마크 업에 주석 루프를 넣을 수 있습니다. 내 예제가 이미 가지고있는 것처럼 들리지만 주석을 얻고 응답을 렌더링하기 위해 라인을 게시 한 것이므로 전체 예제를 들었습니다. –