【发布时间】:2011-03-03 18:51:42
【问题描述】:
我有一个表单选择框,其中包含与对象对应的值。用户选择一个输入并提交表单。然后,我想获取该值并检索具有与所选表单值等效的 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>
【问题讨论】:
-
你有没有找到一个干净的解决方案?我想我遇到了同样的问题,但只能找到我在下面发布的阴暗解决方案。
标签: python django django-forms