如何在 Django 视图中获取组合框的对象值?
How can I get the object value of a combobox in django view?
我正在 django 中创建一个应用程序,为此我有一个表单,其中字段 'Person' 是一个 ForeignKey 字段。因此,当我 运行 应用程序出现时,它会正确地显示一个组合框,让我 select 我想要的 'Person' 对象。但问题是当我试图在视图中捕获信息时。
我使用 POST 方法发送数据,因此,当我尝试在视图中获取 selected 'Person' 对象的值时,我执行以下操作:
selected_person = request.POST['person']
(人为字段名)
当我测试变量'selected_person'的值是一个数字时,我感到很惊讶(具体来说,组合框中元素的selected索引的数字)。
我的问题是:如何获取组合框中所选元素的对象值?
比你厉害!
不是,是数据库中Person对象的主键。所以你可以通过Person.objects.get(pk=selected_person)
.
得到它
但实际上您应该使用 Django 表单,然后它将通过 form.cleaned_data['person']
.
为您提供 Person 对象
另请注意,为清楚起见,这是一个 select 字段或下拉列表,而不是组合框;组合框是一个桌面小部件,具有下拉和编辑字段。
具体来说,问题是我没有在模型中定义 "primary_key" 值,因此,下拉列表给我的数字是 django 附加到模型的默认主键.如果我为模型定义一个自定义的主键,下拉列表中的元素的选择给我主键。
我正在 django 中创建一个应用程序,为此我有一个表单,其中字段 'Person' 是一个 ForeignKey 字段。因此,当我 运行 应用程序出现时,它会正确地显示一个组合框,让我 select 我想要的 'Person' 对象。但问题是当我试图在视图中捕获信息时。
我使用 POST 方法发送数据,因此,当我尝试在视图中获取 selected 'Person' 对象的值时,我执行以下操作:
selected_person = request.POST['person']
(人为字段名)
当我测试变量'selected_person'的值是一个数字时,我感到很惊讶(具体来说,组合框中元素的selected索引的数字)。
我的问题是:如何获取组合框中所选元素的对象值?
比你厉害!
不是,是数据库中Person对象的主键。所以你可以通过Person.objects.get(pk=selected_person)
.
但实际上您应该使用 Django 表单,然后它将通过 form.cleaned_data['person']
.
另请注意,为清楚起见,这是一个 select 字段或下拉列表,而不是组合框;组合框是一个桌面小部件,具有下拉和编辑字段。
具体来说,问题是我没有在模型中定义 "primary_key" 值,因此,下拉列表给我的数字是 django 附加到模型的默认主键.如果我为模型定义一个自定义的主键,下拉列表中的元素的选择给我主键。