Вставить строку в Django URL в JQuery Загрузить - PullRequest
0 голосов
/ 08 мая 2020

Я новичок в JQuery, Django и веб-разработке в целом. Я пытаюсь понять, как вставить строку в URL-адрес в функции загрузки JQuery на основе данных HTML, но получаю ошибки обратного URL. У меня есть представление, которое возвращает визуализированную таблицу HTML из файла по поисковому запросу:

urls.py

urlpatterns = [ ...
     path('database/<search>', views.db_search, name='db_search'),
 ... ]

views.py

def db_search(request, search):
     return render(request, 'app/Content/database.htm', {'context': context})


Это отлично работает, когда я жестко кодирую строку поиска в JQuery как:

$(".filterBtn").click(function(){
            $("#mainpanel").load("{% url 'db_search' 'str_param' %}");
     });


Проблема в том, что есть несколько кнопки фильтра, которые динамически генерируются Django в зависимости от состояния базы данных. Я не хочу жестко программировать параметры поиска (да и не должен). Я хочу сделать что-то вроде:

$(".filterBtn").click(function(){
            $("#mainpanel").load("{% url 'db_search' this.innerText %}");
     });

но Django выдает ошибки обратного URL, потому что this.innerText не определен.

Reverse for 'db_search 'с аргументами' ('',) 'не найдено. Пробовал 1 шаблон (ы): ['database / (? P [^ /] +) $']

Я что-то упустил? Похоже, это должно быть довольно просто.

1 Ответ

0 голосов
/ 08 мая 2020

Это отлично работает

"{% url '<app-name>:<url-name>' <parameter>  %}"

ПРИМЕР

URL:

    path("<str:username>/", view=user_detail_view , name="detail"),

ШАБЛОН:

<a class="nav-link" href="{% url 'users:detail' request.user.username  %}">{% trans "My Profile" %}</a>

где users - это имя моего приложения

деталь - это имя URL

request.user.username - параметр для просмотра

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