Skip to main content
 首页 » 编程设计

Python/Django之表单选择值是对象 ID ...无法获取对象

2025年05月04日7傻小

我有一个表单选择框,其中包含与对象对应的值。用户选择一个输入并提交表单。然后我想获取该值并检索 ID 等于所选表单值的对象。但是,当我尝试这样做时,出现如下错误:

int() 参数必须是字符串或数字,不能是 'Cars'

例子:

if form.is_valid(): 
    car = Car.objects.get(id=form.cleaned_data['id']) 

我猜问题是返回值是一个字符串而不是一个整数。在 PHP 中,这很简单。如何类型转换或使用返回的表单值来获取关联对象?

似乎 Django 没有返回表单元素的值,而是用户可见的选项名称...

表单类:

class CarForm(forms.ModelForm): 
    class Meta: 
        model = Car 

HTML 表单:

<form action=""> 
  <select name="id"> 
      {% for car in cars %} 
          <option value="{{car.id}}">{{car.title}}</option> 
      {% endfor %} 
  </select> 
</form> 

请您参考如下方法:

id 字段必须是整数,或者是可以转换为整数的字符串。 就这么简单!

不知何故,您的 form.cleaned_data['id'] 正在返回一个名为 Cars 的模型

如果您想将它传递给 get(id=

,请确保它返回一个数字