簡體   English   中英

Django模型數據庫中的最后一條記錄

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM