我正在尝试这样做:
我有一张地点评级记录表。在此表中,一个位置也可以有多个评分。但我想将搜索限制为相同位置的最后一条记录。例如:
id
= 1的一个位置有3个评分:1,2,4。现在当用户搜索评分2时,此位置应 NOT 出现,因为它的最后一条记录是4.
修改
有两个表(django模型):位置和评级。
我可以这样做:
all_locations = Location.objects.all()
然后在模板中。 locations_rating
是评级表中foreignkey locationID
的related_name。
{% for location in all_locations %}
{{ location.locations_rating }}
{% endfor %}
答案 0 :(得分:2)
models.py
class Location(models.Model):
locationname = models.CharField(max_length=100)
def __unicode__(self):
return self.locationname
def latest(self):
return Rating.objects.values('rating').filter(von_location=self).order_by('-id')[0]
class Rating(models.Model):
von_location = models.ForeignKey(Location,related_name="locations_rate")
rating = models.IntegerField()
def __unicode__(self):
return "{0}".format(self.rating)
views.py
all_locs = Location.objects.all()
模板
{% for location in all_locs %}
{{ location.locationname }} - {{ location.latest.rating }}<br/>
{% endfor %}
答案 1 :(得分:1)
这是纯粹的猜测,但你可以这样做吗?
Rating.objects.filter(location_id=1).order_by(id).reverse()[0]
答案 2 :(得分:1)
locations = Location.objects.all();
filtered = []
for location in locations:
try:
r = Rating.objects.filter(location=location).order_by(-id).[0]
if r.rating = 2:
filtered.append(location)
except Exception as ex:
pass