Как сделать поле выбора в django с редактируемой опцией «прочее»? - PullRequest
11 голосов
/ 01 сентября 2010
(
    ('one', 'One'),
    ('two', 'Two'),
    ('other', EDITABLE_HUMAN_READABLE_CHOICE),
)

Итак, мне бы хотелось, чтобы поле выбора содержало некоторые общие варианты выбора, которые часто используются, но все еще могут иметь возможность заполнить пользовательское значение, читаемое человеком.

Возможно ли этоили есть какой-то лучший способ сделать это, что я полностью отсутствует?

Ответы [ 2 ]

7 голосов
/ 01 сентября 2010

Один из способов сделать это - использовать пользовательский ModelForm для администратора.Эта форма может иметь два поля - одно, которое принимает набор предопределенных вариантов, и другое, которое принимает произвольные значения.В методе clean() вы можете убедиться, что выбран только один из них.

Если вы не знаете, как должен выглядеть пользовательский интерфейс - скажем, переключатели, которые позволяют вам выбрать либо заранее определенное значение, либо ввести пользовательское значение, то вам, возможно, придется придумать собственное настраиваемое поле.,

3 голосов
/ 01 сентября 2010

Быстрое решение, которое я использовал:

  • использовало стандартные поля ModelChoice
  • пользовательскую форму, которая добавляла обычное поле ввода для каждого поля ModelChoice
  • пользовательский JQuery, которыйпоказывал только обычное поле ввода, когда последний выбор был выбран
  • в представлении, когда я получил данные POST, я проанализировал массив POST и создал модели
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...