Сохраните динамически заполненное значение в раскрывающемся списке - PullRequest
0 голосов
/ 22 мая 2018

Я использую Wagtail CMS для Django, я хочу добавить динамически заполненное значение для раскрывающегося списка и сохранить его на модели страницы, это мой код:

class MyPage(Page):
    domain = CharField(max_length=10, choices=MY_CHOICES)
    subdomain = CharField(max_length=10, choices=[('', '------')]

У меня есть некоторыелогика внешнего интерфейса для динамического заполнения параметров субдомена, но после нажатия кнопки сохранения я получил: The page could not be created due to validation errors и в поле субдомена: Select a valid choice. [my value] is not one of the available choices.

Я не могу использовать ForeignKey для заполнения субдомена, поскольку это зависит отслужба внешнего API, которую мы используем.

Я попытался использовать настраиваемое поле, которое наследуется от CharField, но безуспешно, похоже, он выполняет метод validate только для поля domain.

1 Ответ

0 голосов
/ 22 мая 2018

Если вы используете аргумент choices, вам необходимо предварительно определить список возможных значений.Прочитайте соответствующую часть документов (два последних абзаца этого раздела).

Вы можете опустить аргумент choices в определении поля модели и отобразить только тег HTML selectв веб-интерфейсе (который затем динамически заполняется опциями, как вы объяснили).

Вы также можете посмотреть, как изменить виджет по умолчанию CharField на тег select, например этот ответ и эта часть документов show.

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