我为什么会收到错误:“值错误” - 基数为10的int()文字无效:'matthew'

时间:2012-04-28 19:11:08

标签: python django literals base

我正在使用django / python。

以下是数据的来源: 用户从<select name="op_assignedTo">

中选择一个或多个选项

我也使用<option value="username">

数据通过POST发送并收集在django视图中:

op_assignedTo = request.POST.getlist('op_assignedTo')

但是以下行给出了错误: assignedTo_list = Item.objects.filter(assignedTo__in=op_assignedTo)

我从stackoverflow上的其他问题的其他许多答案得到了上述内容。 我对错误很困惑,因为即使是行

temp = Item.objects.filter(assignedTo='matthew')

给出了相同的错误"Value Error" - invalid literal for int() with base 10: 'matthew'.

如果我的帖子的第一部分没有意义,请查看我发布的最后一行代码。 谢谢大家!

2 个答案:

答案 0 :(得分:1)

分配了什么样的领域?我猜它是一个外键,在这种情况下,当你传递一个字符串时,它试图对id进行过滤。我是对的吗?

这里的问题是assignedTo被视为一个int(要么是int,要么是基于int进行比较,比如外键id),并且你要传递一个字符串进行比较它是,这是无效的。

答案 1 :(得分:0)

要在ForeignKey上查询字段,请使用双下划线语法__

https://docs.djangoproject.com/en/dev/topics/db/queries/#lookups-that-span-relationships

temp = Item.objects.filter(assignedTo__username='matthew')