我有一个表单选择框,其值与对象相对应。用户选择输入并提交表单。然后我想获取该值并检索具有与所选表单值等效的ID的对象。然而,当我尝试这样做,我得到一个错误,像这样:Python/Django - 表单选择值是对象ID ...无法获取对象
int()函数的参数必须是字符串或数字,而不是“汽车”
例子:
if form.is_valid():
car = Car.objects.get(id=form.cleaned_data['id'])
我猜测问题是返回的值是一个字符串,而不是一个整数。在PHP中,这是简单的。如何强制转换或使用返回的表单值来获取关联的对象?
好像Django的没有返回表单元素的值,而是对用户可见的选项名称...
Form类:
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>
你有没有想过一个干净的解决方案呢?我认为我有同样的问题,但只能找到我下面发布的一个可疑解决方案。 – KobeJohn 2011-10-30 15:07:28