У меня есть 4 модели в иерархии: анализ, книги, категории и издатель.В моем приложении вы анализируете книги.Книги относятся к категориям, где вы можете просмотреть средний рейтинг анализа всех книг в категории.Этот средний рейтинг (который я называю avg-catg-rating) не сохраняется в дБ, он рассчитывается в представлении.
Вот мой вопрос: как получить средний рейтинг категории для каждой категории, которую издательна один вид издателя?Другими словами, как мне аннотировать avg-catg-rating для каждой категории, чтобы я мог отобразить их все на странице издателя?
Итак, я повторяю, используя категорию как-то так вопрос ?Если да, пожалуйста, дайте совет о том, как, потому что я не совсем уверен, как это сделать.Я также попробовал групповой режим, как предложено в этом разделе , но я мог получить только количество экземпляров книги, я не мог точно комментировать avg-catg-rating.
Чтобы уточнить:
Models.py:
class Analysis:
title = models.CharField
content_rating_1 = models.IntegerField(blank=True,
null=True, default="0")
content_rating_1_comment = models.TextField(max_length=300, blank=True,
null=True)
source_rating_1 = models.IntegerField(blank=True,
null=True, default="0")
source_rating_1_comment = models.TextField(max_length=300, blank=True,
null=True)
book = models.ForeignKey
class Book:
publication_date = models.DateField(default=datetime.date.today)
slug = models.SlugField(allow_unicode=True, unique=False, max_length=160)
category = models.ForeignKey
class Category:
title = models.CharField(max_length=150, unique=False, blank=False)
sub_title = models.CharField(max_length=100, blank=True, null=True)
publisher = models.ForeignKey
class Издатель: title = models.CharField (max_length = 150, unique = False, пробел = False)
publisher / views.py:
class ViewPublisher:
def get_context_data(self, **kwargs):
category_qs = Category.objects.filter(publisher__pk=self.kwargs['pk'])
avg-catg-rating = Books.objects.annotate(long complex queryset that uses values from the analysis model)
context = super(ViewPublisher, self).get_context_data(**kwargs)
context['categories'] = category_qs
context['category_stats'] = Books.objects.filter(category__pk__in=category_qs)\
.annotate(.....and now what???)