我有以下内容:
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.
任何想法?欢呼声,
答案 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 )