如何使用Django的表单框架来处理选择框选项?

25 投票
4 回答
91162 浏览
提问于 2025-04-16 10:33

这里提到我可以使用选择框(SELECT widgets)。但是我该怎么做呢?

文档里没有给出如何用Python写这个字段的例子。

 <select>
   <option>option 1</option>
   <option>option 2</option>
 </select>

4 个回答

13

errx的解决方案在我的情况下几乎是正确的,下面这个方法有效(django v1.7x):

CHOICES= (
('1','ME'),
('2','YOU'),
('3','WE'),
)
select = forms.ChoiceField(widget=forms.Select, choices=CHOICES)

CHOICES里面的元素对应的是(选项值,选项文本)。

14

在编程中,有时候我们需要处理一些数据,比如从一个地方获取数据,然后在另一个地方使用这些数据。这个过程就像是把水从一个水桶倒到另一个水桶里。

想象一下,你有一个水桶(这就是你的数据源),里面装满了水(数据)。你想把这些水倒到另一个水桶(目标位置)里。为了做到这一点,你需要一个工具,比如一个水壶,来帮助你把水从一个桶转移到另一个桶。

在编程里,这个“水壶”就是我们用来处理数据的代码。我们写代码来告诉计算机如何获取数据、如何处理这些数据,以及如何把处理后的数据放到我们想要的地方。

所以,简单来说,编程就是在用代码来搬运和处理数据,就像用水壶把水从一个桶倒到另一个桶一样。

CHOICES= (
('ME', '1'),
('YOU', '2'),
('WE', '3'),
)
select = forms.CharField(widget=forms.Select(choices=CHOICES))
32

在编程中,有时候我们需要让程序做一些事情,比如计算、显示信息或者处理数据。这些操作通常是通过写代码来实现的。代码就像是给计算机下达的指令,告诉它该做什么。

有些时候,程序可能会遇到问题,比如运行得很慢或者出现错误。这时候,我们就需要找出问题的原因,并进行修复。这个过程叫做调试,简单来说,就是像侦探一样,找出代码中的“坏家伙”,让程序重新正常工作。

在调试的过程中,我们可以使用一些工具来帮助我们,比如查看程序的运行情况,或者在代码中加入一些检查点,看看程序在每一步做了什么。这就像是在做实验,观察每个步骤的结果,以便找到问题所在。

总之,编程就像是给计算机讲故事,而调试就是确保这个故事能够顺利地讲下去,不出错。

class MyForm(forms.Form):
    CHOICES = (('Option 1', 'Option 1'),('Option 2', 'Option 2'),)
    field = forms.ChoiceField(choices=CHOICES)
    
print MyForm().as_p()

# out: <p><label for="id_field">Field:</label> <select name="field" id="id_field">\n<option value="Option 1">Option 1</option>\n<option value="Option 2">Option 2</option>\n</select></p>

撰写回答