Модель Django переносит две таблицы - PullRequest
0 голосов
/ 20 марта 2012

У меня есть обзорный сайт, написанный на Django, ..

Как перенести модель для получения данных обзора -

У меня есть класс продукта и класс поставщика, и, наконец, класс обзора с обзором как для продуктов, так и для поставщиков:

class Product(models.Model):
    ....

class Vendor(models.Model):
    ....

class Review(models.Model):
    slug = models.SlugField(max_length=255, unique=True)
    vendor = models.ForeignKey(Vendor)
    user = models.ForeignKey(User, blank=True, null=True)
    product = models.ForeignKey(Product, blank=True, null=True)
    images = models.ManyToManyField(ReviewImage, blank=True, null=True)
    headline = models.CharField(max_length=100)
    review = models.TextField(blank=True, null=True)
    rating = models.IntegerField()
    active = models.BooleanField(default=1)
    created = models.DateTimeField(auto_now_add=True)
    changed = models.DateTimeField(auto_now=True)

Когда я выбираю продукт или поставщика, мне нужен рейтинг AVG из класса ОБЗОР ... Как я могу это сделать?

1 Ответ

2 голосов
/ 20 марта 2012

Ознакомьтесь с django документами по аннотации .

Примерно так должно работать:

from django.db.models import Avg
qs = Vendor.objects.annotate(rating_avg=Avg('review__rating'))

Тогда у каждого поставщика в qs будет .rating_avg собственность.

...