У меня есть рабочий код ниже в моих учетных записях DetailView, поэтому он показывает рейтинг для каждого пользователя на странице профиля пользователя
просмотр профиля
context['ratings_list'] = Ratings.objects.filter(rating_for__username__iexact=
self.kwargs.get('username'))
Iхочу использовать тот же код в моем представлении списка сообщений, где имя пользователя будет post.user.username.
Пример: Ниже показано, как я хочу, чтобы страница списка сообщений выглядела так, что на ней есть несколько сообщений
Post 1
by Samir Tendulkar. Samir Tendulkar's rating: 8/10
Post 2
by John Doe. John Doe's rating: 7/10
просмотр сообщения Могу ли я сохранить тот же вид, что и выше
context['ratings_list'] = Rating.objects.filter(rating_for__username__iexact=
self.kwargs.get('username'))
рейтинг модели:
class Rating(models.Model):
rating_from = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, related_name='rating_from')
rating_for = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, related_name='rating_for')
пост модель
class Post(models.Model):
user = models.ForeignKey(User, related_name='posts')
title = models.CharField(max_length=250, unique=True)
message = models.TextField()
def user_rating(self):
counter = 0
total_ratings = 0
for item in Rating.objects.filter(rating_for=self.user.username):
counter += 1
total_ratings += int(item.ratings)
user_rating = total_ratings / counter
return user_rating
В моем шаблоне профиля (который на самом деле является шаблоном профиля пользователя)
{% if rating_list %}
Rating: {% for rating in rating_list|slice:":1" %}
{{ rating.average_rating }} / 10 {% endfor %}
{% else %}
User has no rating yet
{% endif %}
Я не уверен, как получить шаблон ListView