Django многие ко многим полям
я пытаюсь создать сайт онлайн фильмов, я пишу models.py
это серийные модели
class Serial(models.Model):
title = models.CharField(max_length=100)
slug = models.SlugField(max_length=255, unique=True, db_index=True, verbose_name="URL")
title_english = models.CharField(max_length=100)
descritpion = models.TextField(max_length=1000)
images = models.ImageField(upload_to="movies")
category = models.CharField(choices=CATEGORY_CHOICES, max_length=10)
language = models.CharField(choices=LANGUAGE_CHOICES, max_length=30)
status = models.CharField(choices=STATUS_CHOICES, max_length=100)
year_of_production = models.TextField(max_length=1000)
view_count = models.IntegerField(default=0)
def get_absolute_url(self):
return reverse('post', kwargs={"post_slug_serial": self.slug})
def __str__(self):
return self.title
это для добавления эпизода и серии: пример Сезон 1 --> серия 1 и т.д.
season_num = (
(" 1 ", "Season 1"),
(" 2 ", "Season 2"),
(" 3 ", "Season 3"),
(" 4 ", "Season 4"),
(" 5 ", "Season 5"),
(" 6 ", "Season 6"),
(" 7 ", "Season 7"),
("8 ", "Season 8"),
(" 9 ", "Season 9"),
)
class episodebi(models.Model):
""" Information about specific TV Show episodes """
tv_show = models.ForeignKey(Serial, on_delete=models.CASCADE)
season = models.CharField(choices=season_num,max_length=50)
series = models.IntegerField(max_length=50)
title = models.CharField (max_length=50)
class Meta:
unique_together = ('tv_show', 'season','series')
def __str__(self):
return self.title
и это мой view.py
def serieDetails(request,post_slug_serial):
get_serie = Serial.objects.filter(slug = post_slug_serial)
epis = episodebi.objects.all()
return render(request, '2/seriel_desc.html', {"serie":get_serie,"epis":epis})
когда я пытаюсь добавить html этот цикл HTML
{% load static %}
{% for i in epis %}
<h1>{{ i.tv_show }}</h1>
{% endfor %}
он показывает все серии и эпизоды, то есть когда я нажимаю TW show Vikings я хочу показать только серию викингов и эпизод не все. но он показывает все серии и эпизод все серии. как сделать чтобы показать только серию викингов?
Вы можете получить все episodebi
для данного Serial
с помощью:
def serieDetails(request, post_slug_serial):
get_serie = Serial.objects.filter(slug=post_slug_serial)
epis = episodebi.objects.all(tv_show__slug=post_slug_serial)
return render(request, '2/seriel_desc.html', {'serie':get_serie, 'epis':epis})