我有一个“搜索”表单,由3个字段组成,为最终的数据库查询提供一些条件。表单通过GET方法提交
其中一个字段是ModelChoiceField,并作为Select小部件呈现。每个选项的值都是相关对象的主键——在我的例子中是Django指定的默认主键。我的理解是,该值是一个整数,在请求中被转换为字符串
因此,在我看来,为了处理数据,我有int(self.request.GET.get("name"))
。
但是,我得到的错误表明该值是一个元组:
TypeError字段“id”需要一个数字,但得到了(11,)。
上述异常(int()参数必须是字符串、类似字节的对象或数字,而不是“tuple”)是以下异常的直接原因:
我做错什么了吗?或者,如何以整数形式检索此值,以便完成数据库筛选:
Product.objects.filter(id=product_id)
更新: 我在视图中添加了一个方法,该方法有效,但仍不知道是否有更好的方法:
def convert_to_int(self, type_tuple):
""" Converts tuple value to integer """
type_int = int(''.join(type_tuple))
return type_int
目前没有回答
相关问题 更多 >
编程相关推荐