передать внешний ключ модели в URL - PullRequest
0 голосов
/ 07 марта 2019

У меня есть две разные модели с именами TvShow и Episode, но эпизод связан с tvshow через внешний ключ

tvshow = models.ForeignKey(Media, on_delete=models.CASCADE)

поэтому я пытался добавить его в URL модели эпизода, как это

path('<str:tvshow_title>/<int:season_number>/<int:episode_number>', views.episode, name='episode')

но views.py в Episode трудно определить:

def episode(request, tvshow_title, season_number, episode_number):

    tvshow = Media.objects.filter(media_type='TV', title=tvshow_title).first()

    episode = get_object_or_404(
        Episode, tvshow=tvshow, season_number=season_number, episode_number=episode_number)

    context = {
        'episode': episode
    }

    return render(request, 'media/episode.html', context)

Я не уверен, в чем проблема, я не уверен, что именно так вы передаете более одного параметра get_object_or_404.

1 Ответ

0 голосов
/ 07 марта 2019

Следуйте документации Django , вы можете использовать фильтр непосредственно в get_object_or_404

episode = get_object_or_404(
    Episode, tvshow__title=tvshow_title, tvshow__media_type='TV', season_number=season_number, episode_number=episode_number)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...