【问题标题】:Using choices together with user input in Django在 Django 中使用选择和用户输入
【发布时间】:2016-06-13 12:02:33
【问题描述】:

我正在创建一个模型,其中包含将为用户提供选择的字段,因此我使用关键字choices,如下所示:

ACQUIRED_FROM=(
    ('dealer', 'Dealer'),
    ('private', 'Private'),
    ('show', 'Show'),
    ('family member', 'Family Member'),
    ('other', 'Other'),),

并像这样指定字段:

acquired_from = models.CharField(max_length=100, choices=ACQUIRED_FROM)

在family member下我需要用户输入具体的人(例如父亲,叔叔等)。

我认为它也适用于货币字段,使用户能够选择输入是美元还是欧元,然后指定金额。

问题是如何定义启用用户输入的选项?

这是提出上述相同问题的一种更简单的方法:

LENGTH=(
    ('CENTIMETERS', 'cm'),
    ('INCHES', 'in'),),

有了这个,我希望用户选择英寸或厘米,然后输入实际值。我应该如何修改它?

【问题讨论】:

  • 你有什么问题?
  • Django 支持嵌套选择。请参阅docs.djangoproject.com/en/1.9/ref/models/fields/#choices 的第二个示例
  • 在下拉菜单中选择选项时,您必须使用jquery使输入字段更加动态...
  • @Selcuk 我使用了那个例子,但它并没有解决我的问题。

标签: django django-models django-forms


【解决方案1】:

Django choices 不适用于动态内容。
如果您打算构建nested choices(又名group choices),您可以为family member 预定义选项列表,就像为acquired_from 定义的一样。

ACQUIRED_FROM = (
    ('dealer', 'Dealer'),
    ('private', 'Private'),
    ('show', 'Show'),
    ('Family Member', (
            ('father', 'Father'),
            ('uncle', 'Uncle'),
         )
    ),
    ('other', 'Other'),
)

【讨论】:

  • 父亲和叔叔不是唯一的选择,这就是为什么不使用嵌套选择的原因。除了 Django 选择之外,还有其他方法可以定义此类输入吗?
  • 您可以为家庭成员预先定义所有选项吗?还是动态的?
  • 预定义家庭成员会限制用户,因为我无法捕获所有成员。
  • @PhilloPeters 所以你是说用户可以从['father', 'uncle', 'mother', etc.] 中选择或输入他/她自己的选择?
  • 用户输入自己的选择
猜你喜欢
  • 2023-03-19
  • 1970-01-01
  • 2015-04-26
  • 2012-07-02
  • 2013-10-06
  • 1970-01-01
  • 2021-11-20
  • 2011-03-13
  • 1970-01-01
相关资源
最近更新 更多