Я создал форму Django, которая отправляется на страницу в другом домене (который я не контролирую). Идея заключается в том, что у меня есть красиво оформленная, аккуратно сгенерированная форма, которая аккуратно вписывается в мой собственный сайт и берет пользователя в другом месте, когда он отправляется.Переопределить имя поля формы Django
Однако
- Если другая форма меняет имена любого из его полей, мне нужно изменить имена полей в моей форме, а затем изменить эти имена везде в моем приложении - так
name
attr связан с именем свойства, используемого для поля. - Если удаленная форма использует глупые имена, тогда мой объект формы также должен иметь свойства с глупыми именами, которые загрязняют код моего приложения.
- Должны ли эти имена быть reserved words in Python (например,
from
), то трудно или невозможно создать представление объекта формы Django.
Есть ли способ указать другую строку, используемую для атрибута 'name', когда поле отображается? Таким образом, развязка HTML-формы из класса, который ее представляет.
Для этого потребуется два компонента:
- Override значение имени в виджете
- сделать вид чтения это значение из request.POST, когда оно связано
нужно только шаг 1 в этом случае, но шаг 2 имеет значение для решения проблем, перечисленных выше, более подробно
Это отличное решение моей проблемы и общая проблема привязки имени поля, привязанного к имени свойства поля объекта. Однако, если вам это нужно, у вас может возникнуть проблема. Сначала проверьте, будет ли ответ S.Lott работать на вас. Это не работает для меня, поэтому я задал этот вопрос. – adamnfish
@ Даниэль: Недавно я сделал то же самое, что и вы отправил на ваш ответ. Не могли бы вы объяснить, почему вы считаете, что это ужасное злоупотребление API? Благодарю. –
Честно говоря, это было почти четыре года назад, и я не могу вспомнить, почему я так думал. –