Django - 使用 slug 在模板中添加 {% url %}

Mil*_*n22 3 django django-templates

我正在尝试创建 URL,以便直接从帖子详细信息访问 EDIT 和 DELETE 视图,而不是在浏览器中输入它。

由于有一个 slug,我无法找到正确的 url 模式和模板 {% url %} 代码。

帖子.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'),
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

zai*_*zil 8

您需要将 slug 传递到 html 中的 url 标记中。

尝试这样的事情,

<a href="{% url 'update' slug=instance.slug %}"> Edit </a>
<a href="{% url 'delete' slug=instance.slug %}"> Delete</a> 
Run Code Online (Sandbox Code Playgroud)