2016-03-21 12 views
1

だから私は、私はこのような記事を編集することができ、テンプレートにリンクしようとしています:編集ページをdjangoの詳細ページにリンクするにはどうしたらいいですか?

<a href="{% url 'blog:post_update' pk=post.pk %}">Edit</a> 

をしかし、私は、このエラーを与えている:

Reverse for 'eintrag_update' with arguments '()' and keyword arguments '{u'pk': 63L}' not found. 1 pattern(s) tried: [u'gaestebuch/(?P<id>[0-9]+)/edit/$'] 

しかし、私はこのようなテンプレートへのアクセスを得ることができますエラーなし:

:/ブログ/(ID)/私はこのようにそれにちょうど次のリンクを持っている例については、このテンプレート上の他のすべてのリンクが機能している

を編集210

これは完璧に動作します。

これが私の見解です:

def post_update(request, id=None): 
    instance = get_object_or_404(Post, id=id) 
    form = PostForm(request.POST or None, request.FILES or None, instance = instance) 
    if form.is_valid(): 
     instance = form.save(commit=False) 
     instance.save() 
     return HttpResponseRedirect(instance.get_absolute_url()) 
    context = { 
     "title": instance.title, 
     "instance": instance, 
     "form":form, 
    } 
    return render(request, "blog/write.html", context) 

これは私のURLです:

url(r'^(?P<id>[0-9]+)/edit/$', views.post_update, name='post_update'), 

そして、これは私のモデルである:

class Post(models.Model): 
    author = models.ForeignKey(settings.AUTH_USER_MODEL, default=1) 
    title = models.CharField(max_length=200) 
    content = models.TextField() 

誰かが助けることができれば、私は本当に喜んでいるだろう私!

+2

POST' 'に' eintrag'を翻訳の危険性は、あなたがエラーを隠すかもしれないということです!この場合、私はとにかく問題を発見したと思います。 – Alasdair

+0

ええ、あなたは正しいです、私は理解しやすくしました。そしてもう一度あなたの助けに感謝します! – Dannad

答えて

2

urlパターンのキーワード引数は、urlタグのキーワード引数と一致する必要があります。

あなたは、あなたが同様にあなたのURLパターンにpkを使用する必要がありますpk

<a href="{% url 'blog:post_update' pk=post.pk %}">Edit</a> 

キーワード引数を使用しています。現時点ではidを使用しています。

def post_update(request, pk): 
    post = get_object_or_404(Post, pk=pk) 
    ... 

あなたが代わりにidを使用するために、彼らがそうであるように表示し、URLパターンを残して、URLのタグを変更することができます:あなたはおそらく、例えば、同様にあなたのビューを更新しなければならないことを意味

url(r'^(?P<pk>[0-9]+)/edit/$', views.post_update, name='post_update'), 

。ただし、pkを使用することをお勧めします。これは、Djangoがクラスベースのビューで使用するためです。

もう1つの方法は、urlタグでkwargsの代わりにargsを使用することです。

{% url 'blog:post_update' post.pk %} 
+0

ありがとう、もう一度あなたの助けを! – Dannad

関連する問題