Refer here for traceback****django throwing the error like this. Exception Value:Reverse for 'movie_details' with arguments '('',)' not found. 1 pattern(s) tried: ['movie\/(?P[0-9]+)\/$']
{% extends 'base.html' %}
{% block title %}
{{object.first_name}} - {{object.last_name}}
{% endblock %}
{% block main %}
<h1> {{object}} </h1>
<h2>Actor</h2>
<ul>
<p>hello</p>
{% for role in object.role_set.all %}
<li>
<a href="{% url 'core:movie_details' role.movie.id %}">{{role.movie}} </a>
</li>
{% endfor %}
</ul>
<h2>Writer</h2>
<ul>
{% for movie in objects.writing_credits.all %}
<li>
<a href="{% url 'core:movie_details' movi.id %}"> {{movie}} </a>
</li>
{% endfor %}
</ul>
<h2>Director</h2>
<ul>
{% for movie in object.directed.all %}
<li>
<a href="{% url 'core:movie_details' movi.id %}"> {{movie}} </a>
</li>
{% endfor %}
</ul>
{% endblock %}
codes in model.py
from django.db import models
class PersonManager(models.Manager):
def all_with_prefetch_movies(self):
qs = self.get_queryset()
return qs.prefetch_related('directed','writing_credits','roll_set__movie')
class Person(models.Model):
first_name = models.CharField(max_length=140)
last_name = models.CharField(max_length=140)
born = models.DateField()
died = models.DateField(null=True,blank=True)
objects = PersonManager()
Codes in views.py
class MovieDetail(DetailView):
model = Movie
queryset = Movie.objects.all_with_prefetch_persons()
class PersonDetail(DetailView):
queryset = Person.objects.all_with_prefetch_movies()
url mapping in urls.py
url pattern mentioned bellow
urlpatterns = [
path('movies/', MovieList.as_view(), name='movie_list'),
path('movie/<int:pk>/', MovieDetail.as_view(), name='movie_details'),
path('person/<int:pk>/', PersonDetail.as_view(), name='person_details'),
]