0

我正在使用 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'.

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

4

2 回答 2

1

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

这里的问题是,assignTo 被视为一个 int(它是一个 int,或者是基于一个 int 进行比较,例如外键 id),并且您正在传递一个字符串来比较它,这是无效的。

于 2012-04-28T19:26:33.813 回答
0

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

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

temp = Item.objects.filter(assignedTo__username='matthew')
于 2012-04-28T21:19:08.947 回答