【问题标题】:Save the dynamically populated value on dropdown在下拉列表中保存动态填充的值
【发布时间】:2018-10-31 14:54:08
【问题描述】:

我正在为 Django 使用 wagtail CMS,我想为下拉列表添加一个动态填充的值并将其保存在页面模型中,这是我的代码:

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 继承的自定义字段但没有成功,它看起来只为domain 字段执行validate 方法。

【问题讨论】:

    标签: django model wagtail


    【解决方案1】:

    如果您使用choices 参数,您必须预定义可能值的列表。阅读docs 的相关部分(该部分的最后两段)。

    您可以在模型字段定义中省略 choices 参数,仅在前端呈现 HTML select 标记(然后动态填充选项,就像您解释的那样)。

    您还可以考虑将CharField 的默认小部件更改为select 标记,例如this answerthis part of the docs 显示。

    【讨论】:

      猜你喜欢
      • 2020-06-26
      • 1970-01-01
      • 2021-09-12
      • 2012-01-30
      • 2016-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多