2017-07-03 11 views
1

URLを作成しようとしていますが、EDITビューとDELETEビューはブラウザに直接入力するのではなく、投稿詳細から直接アクセスします。Django - スラッグを使ってテンプレートに{%url%}を追加する

スラッグがあるので、正しいURLパターンとテンプレート{%url%}コードを見つけることができません。

posts.urls

urlpatterns = [ 
url(r'^$', post_list, name='list'), 
url(r'^create/$', post_create), 
url(r'^(?P<slug>[\w-]+)/$', post_detail, name='detail'), 
url(r'^(?P<slug>[\w-]+)/edit/$', post_update, name='update'), 
url(r'^(?P<slug>[\w-]+)/delete/$', post_delete, name='delete'), 

post_detail.htmlは

{% block content %} 
<div class='col-sm-6 col-sm-offset-3'> 
{% if instance.image %} 
<img src='{{ instance.image.url }}' class='img-responsive' /> 
{% endif %} 
<h1> 
{{ title }} 
<small> 
    {% if instance.draft %} 
    <span style='color:red;'>Draft</span> 
     {% endif %}{{ instance.publish }} 
    <div class=''> 
    <a href="{% url 'update' %}"> Edit </a> | 
    <a href="{% url 'delete' %}"> Delete</a> 
    </div> 
    </small> 
</h1> 

答えて

3

は、HTML内のURLタグにスラグを渡す必要があります。

このような何かを試してみてください、

<a href="{% url 'update' slug=instance.slug %}"> Edit </a> 
<a href="{% url 'delete' slug=instance.slug %}"> Delete</a> 
関連する問題