2017-05-07 7 views
0

私はこれをしばらく理解しようとしていましたが、このフレームワークを自分でデバッグするのに十分なフレームワークを知らないような気がします。DjangoのNoReverseMatch [初心者]

基本的に私は小さなブログスタイルのサイトを作成しています。私は、その記事自体を読むためにページにリンクできる投稿のリストを作成しようとしています。

私は私のテンプレートのループを持っている:

テンプレート/ home.py

<h1>Home Page</h1> 
<p>welcome to the ven home page, {{ username }}!</p> 

<a href="{% url 'users:logout' %}">Click here to log out</a> 
<br> 
<a href="{% url 'posts:create' %}">Click here to create a post</a> 

<h2>Posts:</h2> 

{% for post in posts %} 
    <div> 
    <hr> 
    <a href="{% url 'posts:show' id=post.id %}"><h4>{{post.title}}</h4></a> 
    <p>{{post.body}}</p> 
    <p><i>{{post.tags}}</i></p> 
    </div> 
{% endfor%} 

それが問題を引き起こしている行<a href="{% url 'posts:show' id=post.id %}"><h4>{{post.title}}</h4></a>です。私はここでエラーに

Reverse for 'show' with keyword arguments '{'id': 1}' not found. 1 
pattern(s) tried: ['posts/(?P<post_id>\\d+)/view/$'] 

を取得し、私のURLを作成する方法のリンクは罰金

を動作し、ここでテンプレートをロードする図である

url(r'^$', views.CreateFormView.as_view(), name='create'), 
url(r'^(?P<post_id>\d+)/view/$', views.show_post, name='show') 

を提出されています:

def home(request): 
    if not request.user.is_authenticated: 
     return redirect('users:login') 

    posts = Post.objects.all() 
    username = request.user.username 
    return render(request, 'ven/home.html', {'username': username, 'posts': 
    posts}) 

詳細情報が必要な場合は、私にお知らせください。私はそれを提供します。 他のすべての答えは、このエラーは名前空間と関係があると言いましたが、作成リンクで正常に動作しているので、困惑しています。

ありがとうございます!

答えて

0

引数名が一致しません。

あなたはurls.pyにshow URLが'^(?P<post_id>\d+)/view/$'のように定義されているので

<a href="{% url 'posts:show' post_id=post.id %}"><h4>{{post.title}}</h4></a>


<a href="{% url 'posts:show' id=post.id %}"><h4>{{post.title}}</h4></a>

を変更したいと思います。

+0

ありがとうございます!それはとてもシンプルなようですが、私はそれを見落としました –