Django:如何将<select>选项映射到数据库字段值?</select>

时间:2014-09-12 21:18:32

标签: django django-forms django-models

民间,

我正在处理遗留代码,其中ChoiceField呈现如下,我无法更改它,因为javascript使用所有值和标签:

<select>
<option value='one'>First</option>
<option value='second'>Second</option>
</select>

在数据库方面,我有一个字段是整数类型(1 =一,二=两个)来保存它。理想情况下,渲染应如下所示:

<select>
<option value='1'>First</option>
<option value='2'>Second</option>
</select>

现在,我尝试使用ModelForm中的Custom ChoiceField(通过覆盖ChoiceField)来映射int和字符串选择。我能够将数据保存到数据库中,但我无法在前端渲染值。我不知道如何映射这些值作为CustomSelectWidget的渲染函数的值参数传入。

任何投入都将受到赞赏。

谢谢!

1 个答案:

答案 0 :(得分:0)

尝试使用字典

# Assuming "value" id the select value retrieved with request.POST.get
d = {
    'one': 1,
    'two': 2
}

if value in d:
    the_db_id = d[value]
else:
    # Error