查询Django中的子查询

ben*_*eni 3 django django-models django-views

我正在尝试从另一个查询执行查询,但Django说:'渲染时捕获了DatabaseError:子查询返回的行数超过1行.我正在使用PostGis.

我的模特

class Place(models.Model):    
    coordinate = models.PointField()

class TranslatedPlace(models.Model):
    place = models.ForeignKey(Place)
Run Code Online (Sandbox Code Playgroud)

我的看法

  near_coordinates = Place.objects.filter(coordinate__distance_lte=(place_obj.coordinate, D(km=100)))
  near_places = TranslatedPlace.objects.filter(place=near_coordinates)
Run Code Online (Sandbox Code Playgroud)

小智 6

我相信你会想用过滤第二查询集

near_coordinates = Place.objects.filter(coordinate__distance_lte=(place_obj.coordinate, D(km=100)))
near_places = TranslatedPlace.objects.filter(place__in=near_coordinates)
Run Code Online (Sandbox Code Playgroud)