django-el-pagination에 대해 다중 페이지화(ajax)가 작동하지 않습니다.
2개의 쿼리 세트가 있습니다.게시물 및 댓글.저는 아약스를 사용하여 이것들을 렌더링하기 위해 장고-엘-파지네이션을 사용하고 있습니다.
제 견해는 다음과 같습니다.
def profile(request, user, extra_context=None):
profile = Profile.objects.get(user__username=user)
page_template = 'profile.html'
if request.is_ajax():
user_queryset = request.GET.get('user_queryset')
print('Queryset:', user_queryset)
if user_queryset == 'user_posts':
page_template = 'user_posts.html'
elif user_queryset == 'user_comments':
page_template = 'user_comments.html'
else:
pass
print('Template:', page_template)
user_posts = Post.objects.filter(user=profile.user).order_by('-date')
user_comments = Comment.objects.filter(user=profile.user).order_by('-timestamp')
context = {'user_posts': user_posts,'user_comments': user_comments, 'page_template': page_template}
if extra_context is not None:
context.update(extra_context)
return render(request, page_template, context)
어떤 쿼리 세트가 사용되고 있는지 확인하는 Ajax 통화가 있습니다.따라서 'more comments' 또는 'more posts'(템플릿에서)를 클릭하여 더 많은 페이지로 된 개체를 가져올 때 어떤 쿼리 세트에서 온 것인지 알 수 있습니다.그러나 위의 코드를 사용하고 아약스 페이지에 대해 '추가'를 클릭하면 관련 하위 템플릿이 아닌 전체 페이지가 추가됩니다.user_posts.html
또는user_comments.html)
그런데 그.if request.is_ajax()
코드 블록은 올바르게 작동합니다. 올바른 템플릿을 인쇄하여 사용할 수 있으므로 이러한 현상이 발생하지 않아야 합니다.
코드 블록을 이것으로 변경할 때
if request.is_ajax():
page_template = 'user_posts.html'
다음에 대한 Ajax 페이지Post
작동합니다. 하지만 저는 아약스 페이지를 추가하고 싶습니다.Comment
뿐만 아니라.내 이니셜이 안 되는 이유는 무엇입니까?if request.is_ajax()
일은 어떻게 해결할 수 있습니까?
편집:
클릭 시 출력more posts
:
Queryset: None
Template: profile.html
Queryset: user_posts
Template: user_posts.html
제이에스
$('body').on('click', '.endless_more', function() {
console.log($(this).html()); #works successfully
var user_queryset;
if ($(this).html() === 'more posts') {
console.log('POSTS'); #works successfully
var user_queryset = 'user_posts'
} else if ($(this).html() === 'more user comments') {
user_queryset = 'user_comments';
console.log('COMMENTS'); #works successfully
} else {
console.log('none');
}
$.ajax({
type: 'GET',
url: window.location.href,
data: {
'user_queryset': user_queryset
}
})
});
프로파일.파일
<!--posts-->
<div class="user_posts_div">
<div class="endless_page_template">
{% include "user_posts.html" %}
</div>
</div>
<!--comments-->
<div class="user_comments_div">
<div class="endless_page_template">
{% include "user_comments.html" %}
</div>
</div>
user_module.dll(하위 템플릿)
{% paginate 5 user_posts %}
{% for post in user_posts %}
<div class="user_post">
<p class="user_post_title_p"><a class="user_post_title" href="{% url 'article' category=post.entered_category id=post.id %}">{{ post.title }}</a></p>
<p class="user_post_category">/{{ post.entered_category }}</p>
<p class="user_post_date">{{ post.date|timesince }}</p>
</div>
{% endfor %}
{% show_more 'more posts' '...' %}
아래 라인의 출력은 무엇입니까?
print('Queryset:', user_queryset)
아래 라인에 문제가 있는 것 같습니다.
user_queryset = request.GET.get('user_queryset')
게시물 및 주석 부분의 조건과 일치하는 올바른 가져오기 매개 변수 값을 반환하지 않습니다.
당신의 자바스크립트를 다음과 같이 확인해 주시겠습니까?
user_queryset = 'user_comments';
다음으로 변경해 보십시오.
var user_queryset = 'user_comments';
코멘트로 직접 이동하면 user_queryset 변수가 정의되지 않고 'user_comments'로 전달되지 않을 것으로 예상됩니다.
언급URL : https://stackoverflow.com/questions/44731075/multiple-pagination-ajax-not-working-for-django-el-pagination
'programing' 카테고리의 다른 글
SweetAlert2를 사용하여 탐지되지 않음(약속 없음) 취소 (0) | 2023.08.20 |
---|---|
Jquery UI 대화 상자에서 "확인" 대화 상자를 구현하는 방법은 무엇입니까? (0) | 2023.08.20 |
mockMvc로 응답체에서 JSON을 확인하는 방법 (0) | 2023.08.20 |
"주문 기준(SELECT NULL)"은 무엇을 의미합니까? (0) | 2023.08.20 |
Invoke-Command 오류 "지정된 명명된 매개 변수를 사용하여 매개 변수 집합을 확인할 수 없습니다. (0) | 2023.08.15 |