我正在使用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'.
如果我的帖子的第一部分没有意义,请查看我发布的最后一行代码。 谢谢大家!
答案 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')