Как найти способ одновременного отображения объекта комментария и данных телевизора?

Я делаю то, что хочу делать

Я хочу отобразить комментарий пользователя и данные, которые ищутся по tv_id в объекте комментария.

У каждого объекта комментария есть tv_id.

Я хочу получить данные по TV_id каждого объекта комментария и отобразить их в HTML вместе с комментарием. Однако я не могу найти способ одновременного отображения объекта комментария и данных TV. Как я могу это сделать?

Текущее состояние

class TV(models.Model):
    id = models.CharField(primary_key=True, editable=False,
                          validators=[alphanumeric],max_length = 9999)
    stars = models.FloatField(
                    blank=False,
                    null=False,
                    default=0, 
                    validators=[MinValueValidator(0.0),
                     MaxValueValidator(10.0)]
                     )
    def get_comments(self):
        return Comment_tv.objects.filter(tv_id=self.id)
    
    def average_stars(self):
        comments = self.get_comments()
        n_comments = comments.count()

        if n_comments:
            self.stars = sum([comment.stars for comment in comments]) / n_comments
        else:
            self.stars = 0
        return self.stars
class Comment_tv(models.Model):
    class Meta:
        unique_together = ('user', 'tv',)
    
    comment     = models.TextField(max_length=1000)
    stars       = models.FloatField(
                     blank=False,
                     null=False,
                     default=0, 
                     validators=[MinValueValidator(0.0),
                     MaxValueValidator(10.0)]
                  )

    user        = models.ForeignKey(CustomUser, on_delete=models.CASCADE)
    tv          = models.ForeignKey(TV, on_delete=models.CASCADE)
    created_at  = models.DateTimeField(auto_now_add=True)
    updated_at  = models.DateTimeField(auto_now=True)
    class Meta:
        unique_together = ('user', 'tv')
        indexes = [
        models.Index(fields=['user', 'tv']),
        ]

data = requests.get(f"https://api.themoviedb.org/3/tv/{tv_id}?api_key={TMDB_API_KEY}&language=en-US")
class Comment_List_TV(ListView):
      template_name = 'account/user_comment_list_tv.html'
      def get_queryset(self):
            Comment_list_query = Comment_tv.objects.none()
            if self.request.user.is_authenticated:
                  Comment_list_query = Comment_tv.objects.filter(user=self.request.user)
            return Comment_list_query

Хорошей практикой является добавление context_object_name в ваши общие представления, так у вас будет более узнаваемое имя для набора queryset в ваших шаблонах.

class Comment_List_TV(ListView):
      ###
      context_object_name = "comment_tv_list" # This is what the list will be called in the template
      ###
      template_name = 'account/user_comment_list_tv.html'
      def get_queryset(self):
            Comment_list_query = Comment_tv.objects.none()
            if self.request.user.is_authenticated:
                  Comment_list_query = Comment_tv.objects.filter(user=self.request.user)
            return Comment_list_query

Затем в вашем шаблоне:

{% for comment_tv in comment_tv_list %}
    {{ comment_tv.user }}
    {{ comment_tv.comment }}
    {{ comment_tv.stars }}
    {{ comment_tv.tv.id }}
{% endfor %}
Вернуться на верх