Не открывается отдельная страница фильма. 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 %}
Надеюсь я правильно тебя понял и помог!