Django jquery .load () {% url%}, чтобы сохранить СУХОЙ - PullRequest
0 голосов
/ 31 января 2012

Я пытаюсь сделать так, чтобы моя ссылка "Подробности" загружала детали из вызова ajax.

Вот почему я решил использовать функцию load () JQuery.

Каждая ссылка получает свою собственнуюАтрибут data-offer_id и то же самое для всех имен классов ссылок.

<a href="#" data-offer_id="{{ object.id }}" class="offer_ajax">Details</a>

Затем есть код javascript.

$(".offer_ajax").click(function () {
    var url = "/some/url/details/"+ $(this).attr("data-offer_id");
$(this).load(url);

Проблема в том, что я предпочел бы использовать {% url someviewnameobject_id%} выше для "url" js var.

Я мог бы установить URL в data-offer_details_url = "{% url ...%}" и использовать вместо него var url = $(this).attr("data-offer_details_url", но разве это единственный путь?

Это больше кода для загрузки, если URL действительно длинный и отображается много записей ...

Спасибо

1 Ответ

2 голосов
/ 31 января 2012

Вы должны сделать это следующим образом:

<a href="{% url ... %}" class="offer_ajax"/>

Если вам нужно выполнить некоторые проверки перед переходом по этой ссылке, вы можете использовать что-то вроде этого:

$('.offer_ajax').click(function() {
    if(!check_if_everything_ok()) {
        return false; // the page won't change
    }
});

Также,если вам также нужен object.id, вам также следует включить атрибут data-offer_id (и вы не будете повторяться, делая это, потому что идентификатор предложения! = URL предложения)

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