接口错误:绑定参数0时出错 - 可能不支持的类型

1 投票
1 回答
3924 浏览
提问于 2025-04-16 12:21

我有以下内容:

class Tag( models.Model ):
    name = models.CharField( max_length=64 )

class Tag2Node( models.Model ):
    ip = models.IPAddressField( db_index=True )
    tag  = models.ForeignKey( Tag )
    last_update = models.DateTimeField( auto_now=True )

class Node( models.Model ):
    id = models.CharField( primary_key=True, max_length=64 )
    ip = models.IPAddressField( db_index=True )
    method = models.CharField( max_length=64 )

(还有一些其他的东西)

基本上,我不能在 Node.ip 上使用外键,因为它的行不是唯一的(我可能会有多个方法对应同一个 IP)。

所以为了查询,我这样做:

found_ips = Tag2Node.objects.filter( tag__name=include ).values('ip').distinct()
q = Q( ip__exact=found_ips[0] )
nodes = Node.objects.get( q )

但是我遇到了这个错误:

InterfaceError: Error binding parameter 0 - probably unsupported type.

有什么想法吗?谢谢!

1 个回答

3

这个错误是因为你把一个字典传给了 get 函数。

我不太明白为什么这个错误没有显示其他的提示信息……

found_ips = Tag2Node.objects.filter( tag__name=include ).values('ip').distinct()
# values returns a dictionary
q = Q( ip__exact=found_ips[0]['ip'] ) 
nodes = Node.objects.get( q )

撰写回答