При нажатии на номер страницы в списке результатов поиска возникает ошибка. - PullRequest
0 голосов
/ 11 июля 2020

Произошла ошибка при нажатии номера страницы под списком, отображаемым в результате просмотра списка. Возможно, неправильная настройка нумерации страниц? Или это проблема с шаблоном? Я пытался исследовать различные причины, но не смог найти причину, потому что я до сих пор не понимаю должным образом представление класса. Кажется, это не решает эту простую проблему. Я был бы очень признателен, если бы кто-нибудь мог сказать мне причину и решение этого

Возможно, неправильно настраивать get_queryset для отображения результатов поиска для представления списка с установленной опцией разбивки на страницы?

спасибо дайте мне знать

просмотр списка

class go_to_skil_note_search_page(LoginRequiredMixin,ListView):
    model = MyShortCut
    paginate_by = 10

    def get_template_names(self):
        return ['wm/myshortcut_list_for_search2.html']

    def get_queryset(self):
        print("go_to_skil_note_search_page excute check :::::::::::::::::::::::::")
        query = self.request.GET.get('q')
        print("query ::::::::::::::: ", query)
        if(query != None):
            print("user list check :::::::::::::::::::::::::")
            print("current user :::::::::::::::::::::::::" , self.request.user)
            object_list = MyShortCut.objects.filter(Q(author=self.request.user) & (Q(title__contains=query) | Q(filename__contains=query) | Q(content1__contains=query) | Q(content2__contains=query))).order_by('created');
            print("result : ", object_list)
            return object_list
        else:
            qs = MyShortCut.objects.filter(Q(author=self.request.user))[:10]
            return qs

шаблон

{% extends "layout.html" %}
{% load staticfiles %}
{% load bootstrap4 %}


{%block title %}Search Note{% endblock %}

{%block extra_css %}


{% endblock %}

{%block content4 %}
<br><hr>
<table class="table table-bordered">
    <tr>
        <td width="">
            <br>
            <div class="container">
              <div class="row">
                <div class="col">

                    <div class="form-check-inline">
                      <label class="form-check-label">
                        <input type="checkbox" class="form-check-input" value="">제목
                      </label>
                    </div>
                    <div class="form-check-inline">
                      <label class="form-check-label">
                        <input type="checkbox" class="form-check-input" value="">내용
                      </label>
                    </div>
                    <div class="form-check-inline">
                      <label class="form-check-label">
                        <input type="checkbox" class="form-check-input" value="">file
                      </label>
                    </div>

                </div>

                <div class="col">
                    <div class="input-group mb-1">
                        <input type="text" class="form-control" value="{{request.user.profile.shortcut_user_id}}" id="shortcut_user_id" aria-describedby="basic-addon2">
                        <div class="input-group-append">
                            <button class="btn btn-outline-secondary update_shortcut_user_id" id="{{request.user.id}}" type="button">유저 선택</button>
                            <button class="btn btn-outline-secondary" id="{{request.user.id}}" type="button">유저 검색</button>
                        </div>
                    </div>
                </div>

              </div>
              <div class="row">
                  <br><br>
                    <div class="col">
                        <br>
                        <form class="" action="" method="get">
                            <div class="input-group mb-3">
                                <input type="text" class="form-control" placeholder="serach word" aria-label="유저 검색" aria-describedby="basic-addon2" id="search_word_for_user"  name="q">
                                <div class="input-group-append">
                                    <!-- search_btn_for_user_list -->
                                    <button class="btn btn-outline-secondary" type="submit">검색</button>
                                </div>
                            </div>
                        </form>
                    </div>

              </div>
            </div>
        </td>
    </tr>

</table>

{% if messages %}
<div class="alert alert-success">
    {% for message in messages %}
    {{ message.message }}<strong>{{ message.tags }}</strong>
    {% endfor %}
</div>
{% endif %}

<!-- <span class="float-right"> {{request.user.profile.shortcut_user_id}} 님의 skill note 입니다. </span> -->


search result:
<table border="1" width="100%">
    <tr>
        <td>번호</td>
        <td>category</td>
        <td>title 22</td>
        <td>name</td>
    </tr>
    <tbody>
    {% if object_list.exists %}
        {% for p in object_list %}
            <tr>
                <td>
                    {{ forloop.counter }}
                </td>
                <td>
                    <a href="/wm/myshortcut/category/{{p.category}}/">
                        {{p.category}}
                    </a>
                </td>
                <td>
                    {{p.title}}
                    <a href="#wm_detail_{{p.id}}" class="badge badge-dark" data-toggle="collapse">상세 보기</a>
                    {% ifequal p.type.type_name "input" %}
                    <br />
                    <input type="text" id="wm_detail_{{p.id}}" class="collapse " value="{{p.content1}}" size="100%" />
                    {% endifequal %}

                    {% ifequal p.type.type_name "textarea" %}
                    <br />
                    <textarea id="wm_detail_{{p.id}}" class="collapse" cols="100" rows="10">{{p.content2}}</textarea>
                    {% endifequal %}

                    {% ifequal p.type.type_name "summer_note" %}
                    <br />
                    <div id="wm_detail_{{p.id}}" class="collapse" width="100%">{{p.content2 | safe}}</div>
                    {% endifequal %}

                </td>

                <td>
                    <a href="" onclick="change_user_for_search(this)" id={{p.author}}>
                        {{p.author}}
                    </a>
                </td>
            </tr>
        {% endfor %}
    {% else %}
        <tr>
            <td colspan="4">
                <h4>검색 결과가 존재하지 않습니다.</h4>
            </td>
        </tr>
    {% endif %}

    </tbody>
</table>

{% if is_paginated %}
   {% bootstrap_pagination page_obj size="small" justify_content="center" %}
{% endif %}

<span class="myshort_list_area"></span>


{% endblock %}

<!-- js area -->
<script type="text/javascript">
{% block extra_js %}
$(function() {

});

$('.update_shortcut_user_id').click(function (e) {
    e.preventDefault();
    const id = this.id
    const user_id = $("#shortcut_user_id").val()

    window.history.pushState("", "", '/wm/')

    $.ajax({
        type: "POST",
        url: 'update/shortcut_id_ajax/' + id,
        data: {
            'user_id': user_id,
            csrfmiddlewaretoken: '{{ csrf_token }}'
        },
        success: function (result) {
            alert("result.message : "   + result.message)
            const original_id = result.original_id
            if (original_id != "") {
                $("#shortcut_user_id").val(original_id)
            }
            window.history.pushState("", "", '/wm/myshortcut/')
            location.href = "/wm/myshortcut/go_to_skil_note_search_page/"
        }
    })

})

(function($) {
    $.fn.flash_message = function(options) {
      options = $.extend({
        text: 'Done',
        time: 1000,
        how: 'before',
        class_name: ''
      }, options);

      return $(this).each(function() {
        if( $(this).parent().find('.flash_message').get(0) )
          return;

        var message = $('<span />', {
          'class': 'flash_message ' + options.class_name,
          text: options.text
        }).hide().fadeIn('fast');
        $(this)[options.how](message);

        message.delay(options.time).fadeOut('normal', function() {
          $(this).remove();
        });
      });
    };
})(jQuery);

{% endblock %}
</script>

ошибка:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...