InterfaceError:绑定参数0时出错 - 可能是不支持的类型

时间:2011-02-23 03:35:55

标签: python django

我有以下内容:

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上做一个ForeignKey,因为它的行不是唯一的(我可能有相同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 个答案:

答案 0 :(得分: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 )