Не открывается отдельная страница фильма. Django

Возвращает эту ошибку:

Reverse for 'movie_info' with arguments '('',)' not found.
2 pattern(s) tried: ['movie_info/\Z', 'movie_info/(?P[0-9]+)/\Z'].

Не могу понять почему не работает.

views.py:

from django.http import HttpResponse
from django.shortcuts import render, redirect, get_object_or_404
from .models import Movie


def index(request):
    movies = Movie.objects.all()
    return render(request, 'index/main.html', {'movies': movies})

def movie_info(request, movie_id):
    movie = Movie.objects.get(pk=movie_id)
    return render(request, 'index/movie_info.html', {'movie': movie})

urls.py:

from django.urls import path
from index import views
from django.conf.urls.static import static


urlpatterns = [
    path('', views.index, name='index'),
    path('movie_info/<int:movie_id>/', movie_info, name='movie_info'),
]+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

main.html:

<a href="{% url 'movie_info' movie_id %}" class="btn">СМОТРЕТЬ</a>

Если я правильно понял. Ты хочешь чтобы шаблоне main отображался список дубликатов модели. А в moovie_info детальная информация о данном дубликате. Предлагаю тебе более простой вариант с использованием класса. Думаю тебе не составит труда подставить уже под свою модель.

/views.py

from django.views.generic import DetailView

class EventsView(FormMixin, DetailView):
    model = Events
    template_name = 'event/event_info.html'
    context_object_name = 'event'

def get_success_url(self, **kwargs):
    return reverse_lazy('event', kwargs={'pk': self.get_object().id})

/urls

path('events_list/<int:pk>/', views.EventsView.as_view(), name='event'),

/ html

<a href="{% url 'event' item.id %}" type="button" class="btn" style="background-color: #14c4d8; font-family: Montserrat; color: white;">Подробное описание</a>

item из цикла. ВОт более понятный пример. У тебя возможно другой нейминг. id встроенный у всех!!! даже если ты его не указал в модели!! аккуратнее!!!!!!!

{% for item in page_obj %}

Надеюсь я правильно тебя понял и помог!

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