[英]last record in django models database
我正在嘗試這樣做:
我有一張位置評分記錄表。 在此表中,一個地點也可以具有多個評分分數。 但我只想將搜索限制在相同位置的最后一條記錄。 例如:
一個位置與id
= 1有3個等級分數:1,2,4,現在當用戶評價得分searchs 2,這個位置不應該出現,因為它的最后一個記錄是4。
編輯
有兩個表(django模型):位置和等級。
我可以這樣做嗎?
all_locations = Location.objects.all()
然后在模板中。 locations_rating
是評分表中外鍵locationID
的related_name。
{% for location in all_locations %}
{{ location.locations_rating }}
{% endfor %}
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 %}
這純粹是猜測,但是您可以做這樣的事情嗎?
Rating.objects.filter(location_id=1).order_by(id).reverse()[0]
啊,我誤解了這個問題。 這不是一種非常有效的方式來完成您要問的事情:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.