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

时间:2010-09-01 00:33:19

标签: python django

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

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

这是可能的,还是有更好的方法可以让我完全失踪?

2 个答案:

答案 0 :(得分:7)

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

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

答案 1 :(得分:3)

我使用的快速解决方案:

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