0
我正在構建一個網站,用戶可以上傳漢堡評論。他們還可以根據一些標準對漢堡進行評分。然後,我想通過評論信息爲每個漢堡店製作一個目標網頁。我認爲我的模型正確,但我無法查詢數據庫。Django:無法設置多對一模型
我的models.py是:
from django.db import models
from datetime import datetime
class Place(models.Model):
name = models.CharField(max_length=300, unique = True)
def __unicode__(self):
return self.name
class Review(models.Model):
RATINGS = (
(1, '1'),
(2, '2'),
(3, '3'),
(4, '4'),
(5, '5'),
)
place = models.ForeignKey(Place)
burger = models.CharField(max_length=150)
date = models.DateField(default = datetime.now)
bun = models.IntegerField(max_length=1, choices=RATINGS)
toppings = models.IntegerField(max_length=1, choices=RATINGS)
meat = models.IntegerField(max_length=1, choices=RATINGS)
comments = models.TextField(max_length=2000)
#photo = models.ImageField(upload_to='', blank=True)
def __unicode__(self):
return self.burger
所以現在我想利用從各個複習資料每個漢堡的地方創建一個登陸頁面。就像「這裏的平均髮髻評分是5」。我如何查詢所有評論並在頁面上獲取這樣的信息?我能夠建立一個簡單的登陸頁面,列出了有關該地點的評論數量,但我無法弄清楚如何做更多的事情。
views.py:
def index(request):
context = RequestContext(request)
place_list = Place.objects.all()
context_dict = {'places': place_list}
return render_to_response('index.html', context_dict, context)
index.html的模板:
{% for place in places %}
<li><a href="/burgers/place/{{ place.url }}">{{ place.name }}</a> | {{place.review_set.count}}</li>
{% endfor %}
如果我要顯示在主頁上的平均包子評級旁邊的地方?我怎樣才能對與每個地方相關的評論數據進行計算? – user1410712
更新了答案看看! –
當你說「在數據庫」,你的意思是在地方模式?而在應用程序是在我的索引視圖? – user1410712