如何从django查询中传递字典值,作为另一个查询中的过滤值?

时间:2015-02-12 22:50:03

标签: django django-queryset

查询1:

nearestzips = PostalCode.objects.distance(PostalCode.objects.get(code='user.zipcode').location).order_by('distance')[:9]

print nearestzips

>>>[<PostalCode=97202>, <PostalCode=97201>, <PostalCode=97215>, <PostalCode=97239>, <PostalCode=97214>]

查询2:

latest_entries = Entry.objects.filter(zipcode__in=nearestzips.values())

print latest_entries

>>>TypeError: Cannot use a multi-field GeoValuesQuerySet as a filter value.

我想拍摄最近的&#39;其中包含5个邮政编码,以及与这些邮政编码匹配的查询条目,但我收到上述错误。有什么建议吗?

1 个答案:

答案 0 :(得分:2)

不要使用.values(),而是将.values_list()与您想要匹配的字段一起使用:

latest_entries = Entry.objects.filter(zipcode__in=nearestzips.values_list('myField', flat=True))