繁体   English   中英

如何在 django 的表单操作中传递 url 标题

[英]How to pass a url title in a form action in django

抱歉新手问题,我正在学习 django 并遇到了问题。
我正在尝试将页面标题传递给 url ,它将在视图中搜索具有该标题名称的 for.md 文件。 (页面的标题是从视图中的其他 function 动态出现的,即 {{ title }})。
HTML:

<form action="{% url 'edit' %}">
{% csrf_token %}
<div class="form-group mt-4">
    <button class="btn btn-outline-info" type="submit">Edit page</button>
</div>

网址.py:

path("wiki/edit/", views.edit_page, name="edit")

视图.py:

def edit_page(request, page):
    if request.method == "GET":
        return render(request,"encyclopedia/edit_page.html", {
            "pagename": page,
            "html": markdown2.markdown(util.get_entry(page))
        })

对此的最佳做法是什么。 非常感谢!

仅将此/<str:page>添加到您的路径中,这意味着将任何字符串放在 url 的这一部分,您将在视图 function 的页面参数中获得此字符串

path("wiki/edit/<str:page>", views.edit_page, name="edit")

并为表单操作放置{%url 'edit' title %}

您刚刚错过了一点,您需要更新的只是您的 html 模板和您的 urls.py

<form action="{% url 'edit' page=title %}">
  {% csrf_token %}
  <div class="form-group mt-4">
    <button class="btn btn-outline-info" type="submit">Edit page</button>
  </div>

你的 urls.py 应该是:

urls.py path("wiki/edit/(?P<page>.+?)/$", views.edit_page, name="edit")

请注意,如果您传递带有空格或字符的标题,此方法是理想的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM