Могу ли я переопределить html_name для поля tabularinline в интерфейсе администратора? - PullRequest
0 голосов
/ 12 марта 2009

Можно ли переопределить html-именование полей в формах администратора TabularInline, чтобы они не содержали тире?

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

Все это работает, за исключением того, что Django настаивает на именовании полей в табличном наборе запросов, как что-то в строках:

[model]_set-[index]-[field]

Итак, если моей моделью является TravelLogClient, а моим полем внешнего ключа является компания, поля в форме HTML для трех записей в наборе запросов tabularinline будут:

travellogclient_set-0-company
travellogclient_set-1-company
travellogclient_set-2-company

Проблема в том, что javascript не любит идентификаторы с черточками в них. Таким образом, JavaScript не работает и автозаполнение не работает.

ЭТО ТОЛЬКО ПРОБЛЕМА С БУМАЖНЫМИ ВНУТРЕННИМИ ФОРМАМИ! Если я использую пример автозаполнения Дженниса в не табличном поле формы администратора, это работает просто отлично, потому что имя поля не имеет части "..._set-[index]-..." в HTML и javascript.

Вместо того, чтобы отправлять патч в исходный код django, изменяя тире для подчеркиваний на contrib.forms.forms.py и contrib.forms.formsets.py, мне пришло в голову, что возможно, что поведение может быть каким-то образом переопределено.

В противном случае, какой самый простой способ сделать эти черточки в html_name вместо символов подчеркивания?

Заранее спасибо!

1 Ответ

0 голосов
/ 13 марта 2009

Паоло и Гудмундур правы. Я изменил свое использование в javascript в соответствии с предложением Гудмундура, и теперь все работает как положено - никакого вмешательства в django не требуется.

Извините за умственную ошибку ...

Спасибо!

...