![](/img/trans.png)
[英][DJANGO]: How to pass a Django form field value to a template form action?
[英]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.