2011-05-06 2 views
2

일반적으로 문제는 다음과 같습니다. 콘텐츠가있는 페이지가 있으며 사용자가 주석을 달 수 있습니다. 댓글을 삽입하려면 페이지를 다시로드하지 않아야합니다.jQuery에서 Django 템플릿 태그 및 필터를 사용하는 방법?

주석 처리 양식은 주석을 데이터베이스에 저장하는보기에서 처리됩니다. 주석을 저장 한 후 json에 새 주석을 serialize하고 페이지로 돌아갑니다.

data = serializers.serialize('json', [comment]) 
return HttpResponse(data, mimetype='application/javascript') 

아주 잘 작동합니다. 주석은 div의 맨 앞에 추가되지만 jQuery에 서식 태그를 적용하려면 어떻게해야합니까? 설명이

<div class="comment">{{comment}}<br>{{ comment.created | timesince }}</div> 

으로 표시되는 것으로 가정합니다. jQuery 코드에 템플릿 태그를 적용 할 수 있습니까? 물론 다른 의견이 업데이트되지 않아 시간 표시가 잘못 표시되는 문제가 있습니다.이를 수정하려면 전체 의견 목록을 업데이트하고 모든 의견을 다시 페이지에 반복해야하지만 같은 문제가 여전히 남아 있습니다 ..

그것은 .. 어떻게 든 사전으로 모든 코멘트를 반환하여 의견의 전체 목록을 업데이트하고 jQuery를 모든 의견을 표시하는 템플릿을로드 할 수

또는 다른 아이디어는 어떻게이 문제를 해결하기 위해?

답변

3

JSON을 반환하는 대신 업데이트하려는 페이지 부분을 포함하는 템플릿을 렌더링하여 HTML을 반환하십시오. 그런 다음 클라이언트 측 jQuery 코드는 필요에 따라 새 HTML을 삽입하거나 기존 HTML을 바꿀 수 있습니다.

+0

Worked. 다음 문제는 jQuery와 관련이 있습니다.별로 사용하지 않았습니다. 사용자가 한 번만 작동하면 수동으로 새로 고칠 때까지 다음 주석이 표시되지 않습니다. $ (document) .ready (function() {} - 양식에 옵션을 추가하는 기능에 문제가있을 수 있습니다. – rice

+0

문제가 해결됨 ReplaceWith -function은 div 전체를 대체 했으므로 두 번째로 바꿀 id가있는 div가 없었습니다. – rice

1

가장 쉬운 방법은 다른보기에서 템플릿 HTML을 반환하고 jquery의 replaceWith을 사용하는 것입니다.

관련 문제