Django views get_contex_data filter по связанным моделям дублирует записи

Есть 3 модели:

class TVChannel(models.Model):
"""TV канал"""
   title = models.CharField("Название TV канала", max_length=50, unique=True)
   slug = models.SlugField(max_length=50, unique=True)


class Region(models.Model):
"""Регион вещания"""
   title = models.CharField("Регион вещания", max_length=100, unique=True)
   slug = models.SlugField(max_length=100, unique=True)

   def get_absolute_url(self):
       return reverse('slug', kwargs={'slug': self.slug})


class TVShow(models.Model):
"""Телевизионная передача"""
title = models.CharField("Название передачи", max_length=150) 
channel = models.ForeignKey(TVChannel, on_delete=models.CASCADE, verbose_name="TV канал", 
related_name='channel_rn')
region = models.ForeignKey(Region, on_delete=models.CASCADE, verbose_name="Регион вещания", 
related_name='region_rn')

Во Views прописал фильтр, чтобы выводились только те tvchannel, у которых есть tvshow, относящиеся к текущему region.

class RegionTodayView(DetailView):
"""ТВ передачи региона"""
model = Region
slug_url_kwarg = 'region_slug'
template_name = 'tvprogram/region_today_detail.html'

def get_context_data(self, today=tvProgramToday(), **kwargs):
    context = super(RegionTodayView, self).get_context_data(**kwargs)
    context['tvchannel'] = TVChannel.objects.all().filter(channel_rn__region=self.object)
    context['today'] = today
    return context

Но при выводе в шаблоне появляются дубли: tvchannel выводится столько раз, сколько есть tvshow, привязанных к данному region.

   {% for item_tvshow in channel.channel_rn.all %}
   {% if item_tvshow.date == today and item_tvshow.region == region %}
   <div class="show__item">
      <span>{{ item_tvshow.time }}</span>
      <span>{{ item_tvshow.title }}</span>
   </div>
   {% endif %}
   {% endfor %}

введите сюда описание изображения

Подскажите, пожалуйста, как можно исправить данную проблему?

Вернуться на верх