查询Django中的子查询 [英] Query of a subquery in Django

查看:136
本文介绍了查询Django中的子查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试从另一个查询中执行查询,但Django表示:在渲染时捕获DatabaseError:子查询返回超过1行我正在使用PostGis。



我的模型

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

class TranslatedPlace(models.Model):
place = models.ForeignKey(Place)

我的视图

  near_coordinates = Place.objects.filter(coordinate__distance_lte =(place_obj.coordinate,D(km = 100)))
近_places = TranslatedPlace.objects.filter(place = near_coordinates)


解决方案

我相信你会想使用过滤第二个查询器

  near_coordinates = Place.objects.filter(coordinate__distance_lte =(place_obj.coordinate ,D(km = 100)))
near_places = TranslatedPlace.objects.filter(place__in = near_coordinates)


I'm trying to do a query from another query, but Django said: 'Caught DatabaseError while rendering: subquery returns more than 1 row.' I'm using PostGis.

my model

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

class TranslatedPlace(models.Model):
    place = models.ForeignKey(Place)

my view

  near_coordinates = Place.objects.filter(coordinate__distance_lte=(place_obj.coordinate, D(km=100)))
  near_places = TranslatedPlace.objects.filter(place=near_coordinates)

解决方案

I believe you'll want to use in to filter the second queryset

near_coordinates = Place.objects.filter(coordinate__distance_lte=(place_obj.coordinate, D(km=100)))
near_places = TranslatedPlace.objects.filter(place__in=near_coordinates)

这篇关于查询Django中的子查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆