Как передать значение из forloop в URL на модальном с Django? - PullRequest
0 голосов
/ 22 мая 2019

У меня forloop с кнопками и соответствующими значениями pk.

{% for obj in all_objects %}
  <button data-toggle="modal" data-id="{{ obj.pk }}" data-target="#myModal" class="open-my-modal"> {{ obj }} </button>
{% endfor %}

В myModal У меня есть URL с pk = 0 для динамического изменения при выделении объекта.

<a id="doSomething" href="{% url 'myapp:do_something' pk=0 %}">Do something</a>

Я попробовал следующее, но получаю ошибку Reverse для 'do_something' с аргументами ключевого слова '{' pk ':' '}' не найдено.

{% block jquery %}
<script>
    $(document).on("click", ".open-my-modal", function () {
      // get the obj pk
      var objPk = $(this).data('id');  // this properly returns the pk value
      // pass obj pk to the django path variable 'pk'
      document.getElementById("doSomething").setAttribute("href", "{% url 'myapp:do_something' pk=objPk %}");
</script>
{% endblock jquery %}

Как динамически установить переменную пути django (pk) внутри href для выбранного значения obj.pk?

1 Ответ

0 голосов
/ 22 мая 2019

Попробуйте подойти к вашей проблеме под другим углом. Вместо того, чтобы пытаться сгенерировать href в javascript, используйте шаблоны django и просто замените href атрибутом данных.

{% for obj in all_objects %}
  <button data-toggle="modal" data-id="{{ obj.pk }}" data-target="#myModal" data-do-something-url="{% url 'myapp:do_something' pk=obj.pk %}" class="open-my-modal"> {{ obj }} </button>
{% endfor %}

Тогда в JS

<script>
    $(document).on("click", ".open-my-modal", function (e) {
      var trigger = $(e.relatedTarget)
      document.getElementById("doSomething").setAttribute("href", trigger.data('do-something-url')
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...