繁体   English   中英

如何使用可编辑的“其他”选项在django中创建选项字段?

[英]How do you make a choices field in django with an editable “other” option?

(
    ('one', 'One'),
    ('two', 'Two'),
    ('other', EDITABLE_HUMAN_READABLE_CHOICE),
)

所以我想要的是一个选择字段,其中包含一些经常使用的常见选项,但仍然可以选择填写自定义的人类可读值。

这是可能的还是有更好的方法来做到这一点,我完全失踪了?

一种方法是使用自定义ModelForm进行管理。 此表单可以有两个字段 - 一个接受一组预定义的选项,另一个接受任意值。 clean()方法中,您可以确保只选择了其中一个。

如果您特别关注UI的外观 - 例如,单选按钮允许您选择预定义的值xor输入自定义值,那么您可能需要提供自己的自定义字段。

我使用的快速解决方案:

  • 使用标准的ModelChoice字段
  • 自定义表单,为每个ModelChoice字段添加了常规输入字段
  • 自定义JQuery,仅在选择最后一个选项时显示常规输入字段
  • 在View中,当我获得POST数据时,我解析了POST数组并创建了Models

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM