Музыкальное приложение, где я пытался отобразить детали альбома после его нового создания с помощью реверса... получаю нижеупомянутую ошибку, пожалуйста, помогите

Traceback (most recent call last):
  File "C:\Users\Sanath\anaconda3\lib\site-packages\django\core\handlers\exception.py", line 55, in inner
    response = get_response(request)
  File "C:\Users\Sanath\anaconda3\lib\site-packages\django\core\handlers\base.py", line 197, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:\Users\Sanath\anaconda3\lib\site-packages\django\views\generic\base.py", line 103, in view
    return self.dispatch(request, *args, **kwargs)
  File "C:\Users\Sanath\anaconda3\lib\site-packages\django\views\generic\base.py", line 142, in dispatch
    return handler(request, *args, **kwargs)
  File "C:\Users\Sanath\anaconda3\lib\site-packages\django\views\generic\edit.py", line 184, in post
    return super().post(request, *args, **kwargs)
  File "C:\Users\Sanath\anaconda3\lib\site-packages\django\views\generic\edit.py", line 153, in post
    return self.form_valid(form)
  File "C:\Users\Sanath\anaconda3\lib\site-packages\django\views\generic\edit.py", line 136, in form_valid
    return super().form_valid(form)
  File "C:\Users\Sanath\anaconda3\lib\site-packages\django\views\generic\edit.py", line 65, in form_valid
    return HttpResponseRedirect(self.get_success_url())
  File "C:\Users\Sanath\anaconda3\lib\site-packages\django\views\generic\edit.py", line 125, in get_success_url
    url = self.object.get_absolute_url()
  File "C:\Users\Sanath\Desktop\website\music\models.py", line 12, in get_absolute_url
    return reverse('music:detail',kwargs = {'pk' : self.pk})
  File "C:\Users\Sanath\anaconda3\lib\site-packages\django\urls\base.py", line 88, in reverse
    return resolver._reverse_with_prefix(view, prefix, *args, **kwargs)
  File "C:\Users\Sanath\anaconda3\lib\site-packages\django\urls\resolvers.py", line 828, in _reverse_with_prefix
    raise NoReverseMatch(msg)
django.urls.exceptions.NoReverseMatch: Reverse for 'detail' with keyword arguments '{'pk': 11}' not found. 1 pattern(s) tried: ['music/(?P<album_id>[0-9]+)/\\Z']

urls.py

from django.urls import path
from . import views

app_name = 'music'

urlpatterns = [
    #music/
    path('', views.index,name = 'index'),
    #music/71/
    path('<int:album_id>/', views.detail,name = 'detail'),
    path("register/",views.UserFormView.as_view(),name = 'register'),
    path("album/add/",views.albumcreate.as_view(),name = 'album-add'),

#url pattern for the view albumcreate
]

models.py

from django.db import models
from django.urls import reverse
# Create your models here.
class album(models.Model):  #inherit from models.Model
    artist = models.CharField(max_length=250)                  #when migrated to db it will be a column with the same name automatically(here it is variables
    #charfield ,foreignkey is datatype 
    album_title =  models.CharField(max_length=500)   
    genre =  models.CharField(max_length=100) 
    album_logo = models.CharField(max_length=1000)  
    
    def get_absolute_url(self):
        return reverse('music:detail',kwargs = {'pk' : self.pk})
    #returns the detail page of the album we just created
                        
    def __str__(self):
        return self.album_title+'-'+self.artist#string representation of obj
class songs(models.Model):
    #songs needs to be part of an album
    album = models.ForeignKey(album,on_delete=models.CASCADE)
    #bts another column with unique id 1st album id 1 2nd album id 2 and so on
    #let pk of red = 1 then a song of that album will have fk as 1 so that they are linked
    #when ever we delete the ablum red all the songs in the album should be deleted hence             delete
    file_type= models.CharField(max_length=10) #mp3etc
    song_title =  models.CharField(max_length=250)
    
    def __str__(self):
        return self.song_title
    
 

views.py

Ожидаемым результатом было открытие и отображение деталей созданного мной альбома .............................................................................................................................................................................................................................................................................................................................................................................................................................................

Проблема здесь:

def get_absolute_url(self):
    return reverse('music:detail',kwargs = {'pk' : self.pk})
                                            ^^^^^^^^^^^^^^^^

В урлах вы передаете album_id, тогда как здесь вы передаете pk. Следовательно, изменение на àlbum_id должно исправить ситуацию:

def get_absolute_url(self):
    return reverse('music:detail',kwargs = {'album_id' : self.pk})
Вернуться на верх