Python Django选择元组
我不确定以前是否有人回答过这个问题,但现在开始 我有这个密码Python Django选择元组,python,django,Python,Django,我不确定以前是否有人回答过这个问题,但现在开始 我有这个密码 ITEM = [ ('Fruits', ( ('a', 'Apple'), ('g', 'Grape'), ('m', 'Mango') ) ), ('Vegetables', ( ('b', 'Broccoli'), ('p', 'Peanut'),
ITEM = [
('Fruits', (
('a', 'Apple'),
('g', 'Grape'),
('m', 'Mango')
)
),
('Vegetables', (
('b', 'Broccoli'),
('p', 'Peanut'),
('t', 'Tomato')
)
),
]
有了它,我试图像这样访问模型中的元组的可读版本
item = models.CharField(max_length=50, choices=ITEM)
然而,当我从django管理页面提交这个字段时,它提交了,比如说“a”,而不是“Apple”
如何确保我已将“Apple”提交到数据库中,以便稍后以HTML格式显示?您可以使用。如文件中所述: 对于设置了选项的每个字段,对象将有一个
get\u FOO\u display()
方法,其中FOO
是字段的名称。此方法返回字段的“人类可读”值
因此,如果稍后在模板中希望为项
字段呈现人类可读的值,则可以使用以下方式呈现:
{{ my_object.get_item_display }}
{{my_object.get_item_display}}
您可以使用渲染值。如文件中所述:
对于设置了选项的每个字段,对象将有一个get\u FOO\u display()
方法,其中FOO
是字段的名称。此方法返回字段的“人类可读”值
因此,如果稍后在模板中希望为项
字段呈现人类可读的值,则可以使用以下方式呈现:
{{ my_object.get_item_display }}
{{my_object.get_item_display}}
为什么不将项创建为具有名称
和类别
字段的模型?@KentShikama,因为您不必为选项值使用相关模型-因为它不需要管理员可编辑,或者实际上不需要管理员可编辑(考虑一下代码是否依赖此值执行不同的操作……您当然不希望在这里混合硬编码和可编辑的操作)。为什么不将项目创建为具有名称
和类别
字段的模型?@KentShikama,因为您不一定要将相关模型用于选项值-因为它不需要管理员可编辑,或者实际上不需要管理员可编辑(考虑一下代码是否依赖此值来执行不同的操作…您肯定不想在此处混合硬编码和可编辑的内容)。事实证明,我不需要括号来使其在视图上工作。Thanksturns我不需要括号来使其在视图上工作。谢谢