2016-08-28 1 views
-1

マイトレースバック:

File "D:\virtualEnv\lib\site-packages\django\core\handlers\exception.py" in inner 
    39.    response = get_response(request) 

File "D:\virtualEnv\lib\site-packages\django\core\handlers\base.py" in _legacy_get_response 
    249.    response = self._get_response(request) 

File "D:\virtualEnv\lib\site-packages\django\core\handlers\base.py" in _get_response 
    187.     response = self.process_exception_by_middleware(e, request) 

File "D:\virtualEnv\lib\site-packages\django\core\handlers\base.py" in _get_response 
    185.     response = wrapped_callback(request, *callback_args, **callback_kwargs) 

File "D:\virtualEnv\lib\site-packages\django\views\generic\base.py" in view 
    68.    return self.dispatch(request, *args, **kwargs) 

File "D:\virtualEnv\lib\site-packages\django\views\generic\base.py" in dispatch 
    88.   return handler(request, *args, **kwargs) 

File "D:\virtualEnv\lib\site-packages\django\views\generic\edit.py" in post 
    217.   return super(BaseCreateView, self).post(request, *args, **kwargs) 

File "D:\virtualEnv\lib\site-packages\django\views\generic\edit.py" in post 
    183.    return self.form_valid(form) 

File "D:\virtualEnv\lib\site-packages\django\views\generic\edit.py" in form_valid 
    163.   return super(ModelFormMixin, self).form_valid(form) 

File "D:\virtualEnv\lib\site-packages\django\views\generic\edit.py" in form_valid 
    79.   return HttpResponseRedirect(self.get_success_url()) 

File "D:\virtualEnv\lib\site-packages\django\views\generic\edit.py" in get_success_url 
    151.     url = self.object.get_absolute_url() 

File "D:\virtualEnv\website\music\models.py" in get_absolute_url 
    13.   return reverse('music:detail', kwargs={'pk': self.pk}) 

File "D:\virtualEnv\lib\site-packages\django\urls\base.py" in reverse 
    91.  return force_text(iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))) 

File "D:\virtualEnv\lib\site-packages\django\urls\resolvers.py" in _reverse_with_prefix 
    389.    (lookup_view_s, args, kwargs, len(patterns), patterns) 

Exception Type: NoReverseMatch at /music/album/add/ 
Exception Value: Reverse for 'detail' with arguments '()' and keyword arguments '{'pk': 2}' not found. 1 pattern(s) tried: ['music/(?P<album_id>[0-9]+)/$'] 

私のアルバムのモデルは次のとおりです。

class Album(models.Model): 
    artist = models.CharField(max_length=250) 
    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}) 

私のviews.py:

class IndexView(generic.ListView): 
    template_name = 'music/index.html' 
    context_object_name = 'all_albums' 

    def get_queryset(self): 
     return Album.objects.all() 

class DetailView(generic.DetailView): 
    model = Album 
    template_name = 'music/detail.html' 

class AlbumCreate(CreateView): 
    model = Album 
    fields = ['artist', 'album_title','genre', 'album_logo'] 

のURL:

app_name = 'music'  
urlpatterns = [ 
    url(r'^$', views.IndexView.as_view(), name='index'), 
    url(r'^(?P<album_id>[0-9]+)/$', views.DetailView.as_view(), name='detail'), 
    url(r'album/add/$', views.AlbumCreate.as_view(), name='album-add'), 
    ] 

このコードがDで正常に動作しない理由:はget_absolute_urlで\ VIRTUALENV \サイト\音楽\のmodels.py:

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

私はそれがエラーの上に与えたフォームを使用して、アルバムを追加しようとしました。この問題を解決するにはどうすればよいですか?

編集:私はPKでalbum_id変更

、それは次のよう与えるエラー:

Template error: 
In template D:\virtualEnv\website\music\templates\music\detail.html, error at line 14 
    Reverse for 'favorite' with arguments '(4,)' and keyword arguments '{}' not found. 0 pattern(s) tried: [] 4 : 
    5 : <img src="{{album.album_logo}}" > 
    6 : 
    7 : <h1>{{album.album_title }}</h1> 
    8 : <h3>{{album.artist}}</h3> 
    9 : 
    10 : {% if error_message %} 
    11 :  <p><strong>{{ error_message }}</strong></p> 
    12 : {% endif %} 
    13 : 
    14 : <form action=" {% url 'music:favorite' album.id %} " method="post"> 
    15 :  {% csrf_token %} 
    16 :  {% for song in album.song_set.all %} 
    17 :  <input type="radio" id="song{{ forloop.counter}}" name="song" value="{{song.id}}"> 
    18 :  <label for= "song{{ forloop.counter}}"> 
    19 :   {{song.song_title}} 
    20 :   {% if song.is_favorite %} 
    21 :    <img src="http://i.imgur.com/b9b13Rd.png"/> 
    22 :   {% endif %} 
    23 :  </label><br> 
    24 :  {% endfor %} 


Traceback: 

File "D:\virtualEnv\lib\site-packages\django\core\handlers\exception.py" in inner 
    39.    response = get_response(request) 

File "D:\virtualEnv\lib\site-packages\django\core\handlers\base.py" in _legacy_get_response 
    249.    response = self._get_response(request) 

File "D:\virtualEnv\lib\site-packages\django\core\handlers\base.py" in _get_response 
    217.     response = self.process_exception_by_middleware(e, request) 

File "D:\virtualEnv\lib\site-packages\django\core\handlers\base.py" in _get_response 
    215.     response = response.render() 

File "D:\virtualEnv\lib\site-packages\django\template\response.py" in render 
    109.    self.content = self.rendered_content 

File "D:\virtualEnv\lib\site-packages\django\template\response.py" in rendered_content 
    86.   content = template.render(context, self._request) 

File "D:\virtualEnv\lib\site-packages\django\template\backends\django.py" in render 
    66.    return self.template.render(context) 

File "D:\virtualEnv\lib\site-packages\django\template\base.py" in render 
    208.      return self._render(context) 

File "D:\virtualEnv\lib\site-packages\django\template\base.py" in _render 
    199.   return self.nodelist.render(context) 

File "D:\virtualEnv\lib\site-packages\django\template\base.py" in render 
    994.     bit = node.render_annotated(context) 

File "D:\virtualEnv\lib\site-packages\django\template\base.py" in render_annotated 
    961.    return self.render(context) 

File "D:\virtualEnv\lib\site-packages\django\template\loader_tags.py" in render 
    174.   return compiled_parent._render(context) 

File "D:\virtualEnv\lib\site-packages\django\template\base.py" in _render 
    199.   return self.nodelist.render(context) 

File "D:\virtualEnv\lib\site-packages\django\template\base.py" in render 
    994.     bit = node.render_annotated(context) 

File "D:\virtualEnv\lib\site-packages\django\template\base.py" in render_annotated 
    961.    return self.render(context) 

File "D:\virtualEnv\lib\site-packages\django\template\loader_tags.py" in render 
    70.     result = block.nodelist.render(context) 

File "D:\virtualEnv\lib\site-packages\django\template\base.py" in render 
    994.     bit = node.render_annotated(context) 

File "D:\virtualEnv\lib\site-packages\django\template\base.py" in render_annotated 
    961.    return self.render(context) 

File "D:\virtualEnv\lib\site-packages\django\template\defaulttags.py" in render 
    447.    url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app) 

File "D:\virtualEnv\lib\site-packages\django\urls\base.py" in reverse 
    91.  return force_text(iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))) 

File "D:\virtualEnv\lib\site-packages\django\urls\resolvers.py" in _reverse_with_prefix 
    389.    (lookup_view_s, args, kwargs, len(patterns), patterns) 

Exception Type: NoReverseMatch at /music/4/ 
Exception Value: Reverse for 'favorite' with arguments '(4,)' and keyword arguments '{}' not found. 0 pattern(s) tried: [] 

答えて

0

あなたget_absolute_url方法はkwargpk呼ば渡すが、あなたのURLパターンは、引数がalbum_idと呼ばれる期待しています。

+0

album_idをpkに変更すると、テンプレートエラーが発生します。完全なトレースバックは私の質問の編集部分に掲載されています。 – ohid

+0

このURLタグは、新しいエラーを引き起こすタグです: '{%url 'music:favorite' album.id%}'。あなたが投稿したパターンに「お気に入り」というURLパターンは表示されません。 – souldeux

関連する問題

 関連する問題