@nurzhannogerbek

Как исправить ошибку с url адресом?

Здравствуйте, помогите пожалуйста разобраться.

Есть страница в которой вывожу список документов. Подобная страница имеет к примеру такой url адрес:
GET /documents/1/2009/ HTTP/1.1" 200 126071
где
1- категория документа
2009 - год создания документа


Каждый документ в этом списке имеет кнопку по нажатию которой открывается форма редактирования. После нажатия кнопки submit через ajax обновляется список документов. В терминале я вижу такие вот url запросы:
GET /documents/1/2009/edit/1120/ HTTP/1.1" 200 5755

POST /documents/1/2009/edit/1120/ HTTP/1.1" 200 169852

где 1120 id выбранного пользователем документа.

P.S. Последние два url запроса можно заметить лишь в терминале, а пользователю показывается лишь первый url адрес.

Проблема начинается после обновления списка. Многие скрипты у меня завязаны с основной страницей, то есть c первым url адресом. Данные скрипты не работают после того как обновил список. Все последующие ajax запросы добавляются к третьему запросу. К примеру:
GET /documents/1/2009/edit/1120/?page=2&querystring_key=page HTTP/1.1" 200 5747


Хотя должно быть вот так:
GET /documents/1/2009/?page=2&querystring_key=page HTTP/1.1" 200 5747


Видите ли вы решение в данном случаи? Не знаю в каком направлении копать. Приложил свой код.

main_template.html:
<div id="documents" class="dd">
    <ol class="dd-list">
        {% include page_template %}
    </ol>
</div>

{% block script %}
    {# START: AJAX request to endless pagination #}
    <script type="text/javascript">
        function activatePagination(){
            $.endlessPaginate({
                paginateOnScroll: true,
                onCompleted: function(context, fragment) {
                    activateTooltip();
                }
            });
        }
        activatePagination();
    </script>
    {# END: AJAX request to endless pagination #}

   <script src="{% static 'js/documents/crud.js'%}"></script> {# CRUD JS #}
{% endblock %}


crud.js:
$(function () {
    $("#document-modal").on("submit", ".document-edit-form", function(e) {e.preventDefault(); saveForm.call(this, "Data successfully updated");});

    var saveForm = function(success_message) {
        var form = $(this);
        var formData = new FormData(form[0]);
        $.ajax({
            url: form.attr("action"),
            data: formData,
            type: form.attr("method"),
            dataType: 'json',
            success: function (data) {
                if (data.form_is_valid) {
                    // Update list of documents
                    $("#documents ol.dd-list").html(data.html_documents);

                    activatePagination();

                    // Hide modal
                    $("#document-modal").modal("hide");

                    // Show message to user
                    $("#user-action-message").fadeIn("slow");
                    setTimeout(function() {$("#user-action-message").fadeOut("slow");}, 2000);
                }
            },
            cache: false,
            contentType: false,
            processData: false,
        });
        return false;
    };
});
  • Вопрос задан
  • 245 просмотров
Пригласить эксперта
Ответы на вопрос 1
igorfedun
@igorfedun
full-stack python developer
покажи как ты генерируешь url
>> url: form.attr("action"),
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы