我想在 100 英里半径范围内找到Records
某个。tag
我有两个独立工作的查询(见下文),但我不知道如何将它们放在一起。
模型还有Records
一个指向模型的外键,GeoLocation
称为geo_location
. 我希望能够一次性显示模型(Records
和) 的字段。GeoLocation
我尝试了下面.select_related()
的GeoLocation
查询,但由于某种原因,我只让它显示GeoLocation
模型字段,而不是Records
我预期的其他模型字段。
tag_search = Records.objects.filter(tags__slug__in=[tag])
geo_search = GeoLocation.objects.select_related().filter(srid2163__distance_lte=(pnt, D(mi=100))).distance(pnt)
有任何想法吗?
这些是我的模型:
from taggit.managers import TaggableManager
from django.contrib.gis.db import models
class GeoLocation (models.Model):
lat = models.FloatField(blank=True)
long = models.FloatField(blank=True)
srid2163 = models.PointField(blank=True,srid=2163)
server_time = models.DateTimeField(auto_now_add=True)
objects = models.GeoManager()
def __unicode__(self):
return u'%s %s %s' % (self.lat, self.long, self.server_time)
class Records(models.Model):
title = models.CharField(blank=True, max_length=50)
message_body = models.TextField()
server_time = models.DateTimeField(auto_now_add=True)
geo_location = models.ForeignKey(GeoLocation, related_name='geoloc')
tags = TaggableManager()
def __unicode__(self):
return u'%s %s %s' % (self.title, self.message_body, self.server_time)
对于模型tags
中的字段,Records
我使用django-taggit。