Джанго цепочка выбрать - PullRequest
       16

Джанго цепочка выбрать

5 голосов
/ 16 декабря 2009

django-smart-selects - это элегантное решение, позволяющее разработчикам Django связывать выбранные входы в своих формах. Но, как сообщили разработчики в своем списке проблем, он не работает должным образом при использовании в наборах форм.

javascript, который он отображает, привязан к id «связанного поля» прямо в определении модели.

Как вы думаете, как это можно сделать, когда используется в наборах форм? Я думаю, что метод рендеринга виджета (см. Код django-smart-selects) должен как-то быть осведомлен о наборах форм (и в идеале, о префиксах форм). Но как?

Ответы [ 2 ]

4 голосов
/ 16 декабря 2009

Я попробовал это, и это работает --- В файле widgets.py кода django-smart-selects просто скопируйте раздел, посвященный визуализации javascript, и удалите его из файла. Удалите строку, которая объединяет этот (теперь удаленный) javascript с выводом.

Для ваших наборов форм сделайте полный рендеринг самостоятельно. То есть, в вашем шаблоне не просто делайте {{form}} или {{formset}} или что-то еще, но явно разложите все отдельные поля, выполнив {{form.field}} в {% for form в formset. цикл%}.

Вставьте код JavaScript, который вы скопировали из widgets.py, и настройте его с помощью идентификаторов в JavaScript с помощью {{form.field.html_name}}

Запишите свои собственные URL в javascript, следуя шаблону в коде.

Voila!

0 голосов
/ 16 декабря 2009

убедитесь, что вы используете имя / идентификатор / индекс набора форм в идентификаторе элемента, который используется javascript, так что они все равно будут уникальными

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