Использование формы для создания ссылок на записи - PullRequest
0 голосов
/ 28 января 2020

Я использую Django версию 3.0.1, python версию 3.6.9

Я пытаюсь установить URL для отдельных записей в al oop внутри набора форм, но тег url может не вижу мою переменную, хотя она выводится в первую ячейку таблицы, прежде чем я добавлю вторую строку:

{# This displays correctly the integer id #}
<td>{{ form.record_id.value }}</td>

{# This next line doesn't work, though the above TD does display the record_id #}
<td><a href="{% url 'record_detail' form.record_id.value %}">{{ form.name.value }}</a></td>

Ошибка, которую я получаю, заключается в следующем:

Reverse for 'record_detail' with arguments '(None,)' not found. 1 pattern(s) tried: ['myapp\\/record_detail\\/(?P<pk>[0-9]+)\\/$']

Это мой шаблон таблицы кода (обратите внимание, что вторая строка закомментирована, в противном случае я получаю сообщение об ошибке при просмотре страницы):

<table id="formset" class="form">
{% for form in recordFormset.forms %}

  <tr class="someclass">
    <td>{{ form.record_id.value }}</td>

    {# This next line doesn't work, though the above TD does display the record_id #}
    {# <td><a href="{% url 'record_detail' form.record_id.value %}">{{ form.name.value }}</a></td> #}

  </tr>
{% endfor %}
</table>

Я предполагаю, что это потому, что URL создается до для l oop через формы набора форм, но как тогда я могу создать эти URL, которые мне нужно создать?

(Обратите внимание, что для краткости я пропустил редактируемые поля формы в приведенном фрагменте).

1 Ответ

0 голосов
/ 29 января 2020

Я пришел к совершенно другому подходу. Я создал виджет, который я использовал в поле формы, виджет имеет шаблон с гиперссылкой. Я заполняю данные для ссылки в представлении до отображения страницы.

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