Я пытаюсь создать приложение рейтингов для сайта агрегации новостей, но я считаю, что моя реализация приложений или запросы внешних ключей от оценок к статьям неверны.Я продолжаю получать
raise AppRegistryNotReady("Models aren't loaded yet.")
django.core.exceptions.AppRegistryNotReady: Модели еще не загружены.
при миграции.Идея состоит в том, что отдельный рейтинг статьи каждого пользователя обрабатывается ArticleRating, а затем каждая статья будет иметь средний балл, который обрабатывается TotalArticleRating
Я думаю, что проблема сводится к одной из 3 вещей: 1. пользовательрейтинги должны быть реализованы в виде модели в приложении статей, а затем на них должна ссылаться модель TotalRatings.2. мой синтаксис запроса внешнего ключа неверен.Я попытался использовать article.articlerating_set для набора запросов объектов ArticleRating, но он возвращает только атрибут, не определенный.3. Мне нужно по-разному ссылаться на объект статьи, связанный с каждым объектом рейтинга.
from django.db import models
from users.models import User
from Articles.models import Article
class AbstractRating(models.Model):
score = models.IntegerField()
def __str__(self):
return str(self.score)
class Meta:
abstract = True
ordering= ['-score']
class ArticleRating(AbstractRating):
article = models.ForeignKey(Article, on_delete=models.CASCADE)
rater = models.ForeignKey(User, on_delete=models.CASCADE)
class OverallArticleRating(AbstractRating):
article = models.ForeignKey(Article, on_delete=models.CASCADE)
def getArticleAverageScore(art):
sumUserScore = 0
averageUserScore = 0
ratingSet = ArticleRating.objects.filter(article=art)
if len(ratingSet) > 0:
for userRating in userRatingSet:
sumUserScore += userRating.score
averageUserScore = sumUserScore/(ArticleRating.objects.filter( article=art).count())
return averageUserScore
else:
return 0
score = getArticleAverageScore(article)